Django之路由层
一、前言
二、基础的路由配置
三、有名分组
四、分发
五、反向解析
六、名称空间
一、前言
路由层即 URL配置( URLconf ),是Django所支撑的网站的目录。它的本质是URL与该URL调用的视图函数之间的映射关系,用户输入(客户端)需要访问的网页url,然后它(URL控制器)告诉Django,调用对应的逻辑代码对应执行。
二、基础的路由配置
url控制器
from django.urls import path,re_path from app1 import views urlpatterns = [ re_path(r'^artices/2018/$',views.paper_2018), # '^'匹配开头,‘$’匹配u末尾 views.paper_2018(request) re_path(r'^artices/([0-9]{4})/$',views.paper_2018), # [0-9]{4}表示0到9之间的数反复出现4次 views.paper_2018(request,year) re_path(r'^artices/([0-9]{4})/([0-9]{2})/$',views.paper_2018), # [0-9]{2}表示0到9之间的数反复出现2次 views.paper_2018(request,year,month) re_path(r'^artices/([0-9]{4})/([0-9]{2})/([0-9]+)$',views.paper_2018), # [0-9]+ 表示0到9之间的数出现1次以上 views.paper_2018(request,year,month,day) ]
views视图
from django.shortcuts import render,HttpResponse def paper_2018(request): return HttpResponse('Hello world,this is my first paper in 2018!') def paper_2018(request,year): return HttpResponse('Hello world,this is my first paper in %s!'%year) def paper_2018(request,year,month): return HttpResponse('Hello world,this is my first paper in %s-%s!'%(year,month)) def paper_2018(request,year,month,day): return HttpResponse('Hello world,this is my first paper in %s-%s-%s!'%(year,month,day))
注意: 若要从URL 中捕获一个值,只需要在它周围放置一对圆括号。 不需要添加一个前导的反斜杠,因为每个URL 都有。例如,应该是^articles 而不是 ^/articles。 每个正则表达式前面的'r' 是可选的但是建议加上。它告诉Python 这个字符串是“原始的” —— 字符串中任何字符都不应该转义。
未完,待续...
读书原为修身,正己才能正人正世;不修身不正己而去正人正世者,无一不是盗名欺世;你把念过的书能用上十之一二,就是很了不得的人了。——朱先生