urlpatterns属性
urlpatterns是路由文件中的一个全局变量,用来存放路由及视图函数的映射关系用户发起的请求URL都会首先进入主控制目录下的这个urls.py文件中进行查找匹配
- 首先找到urls.py下的urlpatterns全局变量,这是一个路由规则实例的列表数据。
- 按照先后定义顺序,进行路由匹配。
- 找到第一个匹配项时停止匹配,执行匹配到的视图函数。
- 遍历完全,未发现匹配,django进行异常处理
其中urlpatterns中的每一个路由映射规则可以由path或re_path进行构造
path方法
path(str, view, kwargs=None, name=None) #str: 一个匹配队形url地址的规则字符串 #view:路由对应的视图函数,并且会自动封装HttpRequest作为第一个参数给这个视图函数 #kwargs:视图函数的关键字参数 #name: 改路由的群居命名,可以让我们方便在Django项目中任意部分显示的使用,相当于url取变量名,接下来全局使用该命名值即可,当对应url路由改变之后,结合路由反向解析使用的地方不需要改路由
re_path
re_path(regex, view, kwargs=None, name=None) #regex:一个匹配对应url地址的规则字符串 #view:路由对应的视图函数,并且会自动封装HttpRequest作为第一个参数给这个视图函 #kwargs:视图函数的关键字参数 #name:该路由的全局命名,可以让我们方便的在django项目中任意部分显示的使用,相当于为url取变量名,接下来全局使用该命名值即可;当对应url路由改变之后,结合路由反向解析使用的地方不需要更改路由动态路由
有的时候,我们的路由设置不能一直维持一个一成不变的状态;
比如遇到一些内容翻页的场景,那么我们的连接可能是:xx.com/airticle_list/1/、xx.com/airticle_list/2/
那么这样的路由其实对应的都应该是一个视图函数,用以展示页面内容,那么如何设计这样的路由,就要涉及到动态路由及路由传参
class dt(View):
def get(self,request,page):
return HttpResponse(f"当前为第{page}页")
这便是静态路由 和动态路由的区别
include路由分发实现
首先我们可以创建一个子路由 把对于app里面的路由操作写到里面
在回到主路由进行分发
1.先导入include方法
from django.urls import path,include
下面在urlpatterns里进行分发
path('',include(urls)) #路由分发
双引号里面不写东西是为了方便我们输入路由名称的时候 还是原来的路由名字
假设我们在双引号里面写上名字为’ly/’ 那我们在网页查找路由的时候 就要在原来的基础上写上ly/然后在写我们的路由名字



