url 配置
配置流程:
setting 中指定根级 url 配置文件,对应的属性ROOT_URLCONF
urlpatterns : 一个 url 实例的列表,全在根配置搞定
内部由 url 组成(正则匹配路径)
url(r’^learn/’,views.learn)
导入其他 url 配置:
- 在应用中创建 urls.py 文件,编写匹配规则,在工程 urls.py 中进行导入包含
from django.conf.urls import include
urlpatterns = [
url(r’^xxx/’,include(‘App.urls’))
]
url匹配正则注意事项:
- 正则匹配时从上到下进行遍历,匹配到就不会继续向后查找了
- 匹配的正则前方不需要加反斜线
- 正则前需要加(r)表示字符串不需要转义
路由路径中的参数使用()进行获取
- 一个圆括号对应视图函数中的一个参数
- 参数
- 路径参数
- 位置参数
按照书写顺序进行匹配
url(r’^students/(\d+)/’, views.students),
- 关键字参数
- 按照参数名称进行匹配,和顺序无关
url(r’^getdata/(?P\d+)/(?P\d+)/(?P\d+)/’, views.getdata),
- 参数个数必须和视图函数中的参数个数一致(除默认的 request 以外)
反向解析
- 根据根路由中注册的 namespace 和在子路由中注册的 name ,这两个参数来动态获取我们的路径
- 在模板中使用 {% url ‘namespace : name’ %}
- 如果带有位置参数 {% url ‘namespace : name’ 参数1 参数2 [参数 n …] %}
- 如果带有关键字参数 {% url ‘namespace : name’ key1 = value1 key2 = value2 [keyn = valuen …]%}
-
错误页面定制
- 在模板中重写对应错误状态码页面 - 关闭 Debug - 实现原则 - 就近原则
双R
- Request
- 内置属性
- method
- path
- GET
- 类字典结构
- 一个 key 允许对应多个值
- get 获取单个值
- getlist 获取所有值
- POST
- META
- 各种客户端元信息
- REMOTE_ADDR 远端访问 IP - Response