Django 如何处理一个请求
----------------------
- `ROOT_URLCONF`
- `URLconf`
- 匹配
- 调用视图并传参
ROOT_URLCONF
----------------
项目配置文件 `settings.py` 中的一个变量。定义了 **根URLconf** 的文件位置。
如果传入 `HttpRequest` 对象具有 `urlconf` 属性(由中间件设置),则将使用其值代替 `ROOT_URLCONF` 设置。
~~~
# mysite/mysite/settings.py
# ... snip ...
ROOT_URLCONF = 'mysite.urls'
# ... snip ...
~~~
URLconf
-----------
#### `urlpatterns`
`urlpatterns` 变量是一个列表,定义了路由规则。
由 `django.urls.path()` 或 `django.urls.re_path()` 实例组成。
~~~
# mysite/mysite/urls.py
from django.urls import path, re_path, include
from . import views
urlpatterns = [
path('', views.index),
path('index/', views.index),
path('polls/', include('polls.urls')),
]
# mysite/polls/urls.py
from django.urls import path, re_path
from . import views
urlpatterns = [
# ... snip ...
]
~~~
匹配
----
- 依次匹配每个 URL 模式
- 在匹配到的第一个 URL 模式处停止。
调用视图并传参
--------------
调用的是一个 Python 函数,或是基于类的视图。
#### 参数传递规则:
- 第一个参数:`HttpRequest` 实例
- 如果匹配到未命名组,则作为位置参数传入
- 如果匹配到命名组,则作为关键字参数传入
- 如果同时匹配到命名组和未命名组,则只将命名组以关键字参数传入
- 开始
- 安装 django
- 配置语言、时区
- 创建项目
- 执行项目
- Applications
- 应用
- 配置应用
- INSTALLED_APPS
- django apps 包
- AppConfig 子类
- 应用的复用
- 路由
- URLconf
- path
- 转换器
- re_path
- 捕获参数
- URL 反向解析
- include
- 额外参数
- URL 命名空间
- Settings
- Core Settings
- INSTALLED_APPS
- django API
- apps
- config.py -- AppConfig 类
- registry.py -- Apps 类
- db
- models.fields 包
- 字段类型
- 字段选项
- null、blank
- 模型
- 简介
- 字段
