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之路由的主要内容,如果未能解决你的问题,请参考以下文章

Django之路由系统

Django之路由系统

Django之路由系统

Django之 路由系统

Django之路由系统

Django之URL路由系统