Django之路由
Posted xuechengeng
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django之路由相关的知识,希望对你有一定的参考价值。
目录
- 一 Django中路由的作用
- 二 简单的路由配置
- 三 有名分组
- 四 路由分发
- 五 反向解析
- 六 名称空间
- 七 django2.0版的path
一: Django中路由的作用
二 :简单的路由配置
from django.conf.urls import url urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ]
- 正则表达式:一个正则表达式字符串
- views视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
- 参数:可选的要传递给视图函数的默认参数(字典形式)
- 别名:一个可选的name参数
示例:
‘‘‘ 一些请求的例子: /articles/2005/03/ 请求将匹配列表中的第三个模式。Django 将调用函数views.month_archive(request, ‘2005‘, ‘03‘)。 /articles/2005/3/ 不匹配任何URL 模式,因为列表中的第三个模式要求月份应该是两个数字。 /articles/2003/ 将匹配列表中的第一个模式不是第二个,因为模式按顺序匹配,第一个会首先测试是否匹配。请像这样自由插入一些特殊的情况来探测匹配的次序。 /articles/2003 不匹配任何一个模式,因为每个模式要求URL 以一个反斜线结尾。 /articles/2003/03/03/ 将匹配最后一个模式。Django 将调用函数views.article_detail(request, ‘2003‘, ‘03‘, ‘03‘)。 ‘‘‘
三 :有/无名分组
有名分组
url(r‘^test3/(?P<id>d+)/(?P<name>w+)$‘, views.test3), 有名分组分出几个值,视图函数就要接受几个值(按关键字传入,位置可以打乱),视图函数必须用对应的名字来接收参数
def test(request,id,name):
...
易混淆
<a href="/updatebook/?id={{ book.pk }}">编辑</a> a链接的请求都是get请求,get请求将数据显示到url路径里传给后台。要区别于url.py文件中配置的有名分组
如果需要获取数据,需要从request.GET里取。
url(r‘^updatebook/‘, views.updatebook) 路由里没有分组,视图函数里就不需要接收!!!
无名分组
url(r‘^test2/(d+)/(w+)$‘, views.test2), 无名分组分出几个值,视图函数就要接受几个值(位置参数形式传过来的)
四 :路由分发
五 :反向解析
六 :名称空间
七 :django2.0版的path
以上是关于Django之路由的主要内容,如果未能解决你的问题,请参考以下文章