路由系统

一、路由系统

正则表达式

1、路由系统基本格式
urlpatterns = [
path( 要匹配的路径(可以是正则表达式), 视图函数, 参数, 别名)

2、参数说明
(1)正则表达式:一个正则表达式字符串
(2)视图函数:一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串
(3)参数:要传递给视图函数的默认参数(字典形式,可选)
(4)别名:一个可选的name参数
3、正则表达式详解
(1)在python中使用 re_path模块来写正则表达式
(2)正则表达式的开始使用“^”表示。
(3)正则表达式的结束使用“$”表示。
“r” 元字符串 防止正则表达式中的转义。

路由系统_第1张图片

4、正则表达式分组及分组命名匹配
(1)分组匹配:
正则表达式分组匹配是通过小括号”()”来捕获URL中的值并以位置参数形式传递给视图。

  re_path(r'^laojiang4/(\d+)/$',views.laojiang4), # \d表示任意数字,+表示至少出现一次

注意:视图函数接受的是内容时字符串类型。

(2)分组命名匹配:
分组命名正则表达式组的语法是(?Ppattern),
其中name是组的名称,pattern是要匹配的模式。
捕获的值作为关键字参数而不是位置参数传递给视图函数。

    re_path(r'^laojiang5/(?P[0-9]{4})/(?P[0-9]{2})/$',views.laojiang5,name="lj5"),
    #为组名,[0-9]表示出现的是数字,{4}表示数字出现的次数

5、传递额外参数给视图函数

re_path(r'^laojiang6/$',views.laojiang6,{"year":"2019"})

路由系统_第2张图片

7、Url反向代理(别名)
使用url反向代理,解决硬编码问题。
urls.py中的设置
路由系统_第3张图片
views.py中的视图函数

路由系统_第4张图片

templates模板中的设置

laojiang6
路由系统_第5张图片
laojiang5
路由系统_第6张图片

你可能感兴趣的:(路由系统)