【Django 笔记】Django快速入门 第1节: 请求和响应

【Django 笔记】Django快速入门 第1节: 请求和响应 

笔记基于官方文档技术博客,从中提取关键信息,和记录笔记,详见官方文档。

Django快速入门官方文档:Part 1: Requests and responses

目录

 

1. 查看Django版本:

2. 创建项目

3. 启动开发服务器

4. 创建应用

5.编写视图

6. path()函数


 

为了各个项目便于管理,推荐 Django应用 在虚拟环境中创建

1. 查看Django版本

python -m django --version

2. 创建项目

django-admin startproject 项目名称

命令行cd 到想放置代码的目录,然后运行以下命令:

django-admin startproject mysite

将会在当前目录下创建一个 mysite 目录,用 tree 可见其结构。

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

各文件和目录解释:

  • 外层的mysite/目录与Django无关,只是你项目的容器,可以任意重命名。
  • manage.py:一个命令行工具,是项目的管理文件,用于与Django进行不同方式的交互脚本,非常重要!
  • 内层的mysite/目录是真正的项目文件包裹目录,它的名字是你引用内部文件的包名,例如:mysite.urls
    • __init__.py:一个定义包的空文件。
    • settings.py:项目的主配置文件,非常重要!
    • urls.py:路由文件,进行路由配置。所有的任务都是从这里开始分配,相当于Django驱动站点的内容表格,非常重要!
    • wsgi.py:一个基于WSGI的web服务器进入点,提供底层的网络通信功能,通常不用关心。

还可以使用Pycharm创建Django工程,2018以后的Pycharm版本都支持同时创建虚拟环境和Django工程。

3. 启动开发服务器

启动 Django 自带的用于开发的简易服务器:cd到项目的根目录执行命令

python manage.py runserver

在浏览器访问http://127.0.0.1:8000/,看到Django的火箭欢迎界面,则一切OK!

可以指定端口:

python manage.py runserver 8080

指定ip和端口:

python manage.py runserver 0:8000

0 是 0.0.0.0 的简写。

4. 创建应用

在 Django 中,每一个应用(app)都是一个 Python 包,并且遵循着相同的约定。Django 自带一个工具,可生成应用的基础目录结构。

app应用与project项目的区别:

  • 一个app实现某个功能,比如博客、公共档案数据库或者简单的投票系统;
  • 一个project是配置文件和多个app的集合,这些app组合成整个站点;
  • 一个project可以包含多个app;
  • 一个app可以属于多个project!

app的存放位置可以是任何地点但是通常都将它们放在与manage.py脚本同级的目录下

进入mysite项目根目录,确保与manage.py文件处于同一级,输入下述命令:(格式:python manage.py startapp 应用名

python manage.py startapp polls

这将会创建一个 polls 目录,使用tree可查看目录结构。

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py

:Pycharm没有创建app的图形化按钮,需在下方的Terminal终端中输入以上命令。创建项目时使用了虚拟环境的画,Terminal会自动进入虚拟环境。

注册应用

应用创建成功后,需要安装注册才可以使用,也就是建立应用和项目之间的关联,在mysite/settings.py(项目跟目录的setting.py)中INSTALLED_APPS下添加应用的名称就可以完成安装。

在元组中添加一个新的项,当前示例为polls:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'polls',
]

5.编写视图

(1) 在 应用名/views.py 中编写视图。

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

(2) 要调用视图,还需要将一个 URL 映射到它。即需要编写urlconf,也就是路由路径。在polls 目录(应用的目录) 里新建一个 urls.py 文件。(注意:还有一个主urls.py文件,在与项目同名的文件夹)

polls/urls.py :

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

(3) 下一步是要在根 URLconf 文件中指定我们创建的 polls.urls(应用名.urls 模块。在 mysite/urls.py (项目根目录/urls.py)文件导入include模块,在 urlpatterns 列表里添加条目,指向我们刚才建立的polls这个app独有的urls文件。

mysite/urls.py

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),  # 添加条目
    path('admin/', admin.site.urls),
]

路由设置成功后,启动服务器,然后在浏览器中访问地址  http://localhost:8000/polls/ 一切正常的话,你将看到“Hello, world. You’re at the polls index.”

没有找到页面? 检查是不是访问地址是不是写成了 http://localhost:8000/

 

建议:除了admin路由外,尽量给每个app设计自己独立的二级路由。

6. path()函数

函数 path() 具有四个参数,两个必须参数:route 和 view,两个可选参数:kwargs 和 name。现在,是时候来研究这些参数的含义了。

path() 参数: route

route 是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。

这些准则不会匹配 GET 和 POST 参数或域名。例如,URLconf 在处理请求 https://www.example.com/myapp/ 时,它会尝试匹配 myapp/ 。处理请求 https://www.example.com/myapp/?page=3 时,也只会尝试匹配 myapp/

path() 参数: view

view指的是处理当前url请求的视图函数。当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数,并传入一个 HttpRequest 对象作为第一个参数,被“捕获”的参数以关键字参数的形式传入。

path() 参数: kwargs

任意个关键字参数可以作为一个字典传递给目标视图函数。kwargs参数允许您向视图函数或方法传递额外的参数. See 传递额外选项给视图函数 for an example.

path() 参数: name

为你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个 URL 模式。

path()方法的四个参数,每个都非常有讲究,这里只做了解。

关于URL调度器参考https://docs.djangoproject.com/zh-hans/2.2/topics/http/urls/

完整官方文档:Django documentation 

博客推荐:Django2.2教程

发布了50 篇原创文章 · 获赞 10 · 访问量 6599

猜你喜欢

转载自blog.csdn.net/qq_23996069/article/details/104633322
今日推荐