Django 的路由层URL

Posted askzyl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 的路由层URL相关的知识,希望对你有一定的参考价值。

URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码。

其实你运行这个django项目首先进入的就是urls中  由urls来决定你下一步的走向

    urlpatterns = [
         path(正则表达式, views视图函数,参数,别名),
]


参数说明:

    一个正则表达式字符串
    一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
    可选的要传递给视图函数的默认参数(字典形式)
    一个可选的name参数

 

在django1中  一般都是使用re来进行的匹配  django都是也可以使用re_path进行匹配 也可以使用path来进行设置

url的操作就是设置你的下一步的走向的设置  

分组

有名分组   可以设置你的路由的具体的名字

分发 ------>include 来把你的url内的路由地址设置为到底是谁的

反向解析 ----> reverse 搭配name 就是给你的路由起个名字让它确定具体的值 以后再改变其他的值 也不该变别名

 

 

基本url的匹配

from django.contrib import admin
from django.urls import path
from django.urls import re_path
from first import views
urlpatterns = [
    path(admin/, admin.site.urls),
    re_path(^index/,views.index),  #导入了re_path 就可以使用正则匹配进行匹配  前面是你的匹配条件  后面是匹配的内容  就是以index开头  从views.index内匹配

    re_path(^$,views.nice),  #这是你的请求框 url内不用输入任何信息只需要输入ip和端口就可以访问到 views内的nice函数

     re_path(^article/,views.article_year),
    re_path(^article/d{4}/$,views.article_year), #请求的内容是以article后面跟上4个数字开头的 匹配views.article_year函数

    re_path(^article/2003/d{2}$,views.lap),  #这是会有重叠覆盖的  其实你现在的内容已经被第一个覆盖了 第二个也被第一个覆盖了  因为只要是开头是article的就都走views内的article_year了  不管后面的匹配项了
]

 

url可以用re_path利用正则的方式来进行匹配  

一定要注意覆盖: 因为后面覆盖会伴随我们很久远  覆盖只要匹配到上面的一个就不会管下面的内容 就会覆盖下去

 

 

分组:

分组就是利用正则一样的方式进行你的匹配的条件进行分组匹配

 

分组后的对应的视图内的函数接受的参数也必须根据你分组的个数来设定 ,如果你的匹配项 设定的分组 是3个 那么你的的视图内的对应函数也必须设置接收3个参数  才可以

 

以上是关于Django 的路由层URL的主要内容,如果未能解决你的问题,请参考以下文章

Django视图层之路由配置系统(urls)

Django 路由层(urlconf)

Django的路由层(urlconf)

Django的路由层

路由层

Django的路由层