一、正则路径中的无名分组
1.1创建正则无名分组
from django.contrib import admin
from django.urls import path,re_path,include
from app01 import views
urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'^index/(\d{4})/$',views.index),
]
备注:通过from django.urls import re_path 将正则re_path模块导入进来,之后通过正则匹配一份分组(\d{4}),因为定义的是无名分组,所以它的值名称无需定义,只需要在views试图函数中定义一个形参即可
1.2定义视图函数index
def index(request,id):
hi = " Give me the strength to make my love fruitful in service."
l1 = [11,22,33]
now = datetime.datetime.now()
L1 = ['alex', '金老板', '武佩琪']
return render(request,'index.html',{"hi":hi,"l1":l1,"now":now,"L1":L1,"id":id})
备注:这里定义了多个变量值,之后在通过template模板进行渲染,主要只需要看id值即可
1.3定义template模板
<h3>路由正则的无名分组打印id值</h3>
{{ id }}
备注:通过template模板将视图函数中取到的值变量id进行渲染
1.4访问测试
http://127.0.0.1:8000/index/2005/
也没访问的信息如下:
路由正则的无名分组打印id值
2005
备注:可以看到当在浏览器进行get请求时有2005的关键字则可以打印2005,同时输入其他4位数字也可以进行打印
二、正则路径中的有名分组
2.1创建正则有名分组
urlpatterns = [
path('admin/', admin.site.urls),
re_path(r'^order/(?P<year>\d{4})/(?P<month>\d{2})/$',views.order),
]
备注:可以看到分别定义了两个分组:year、month
2.2定义视图函数order
def order(request,month,year):
return render(request,'order.html',locals())
备注:将两个有名分组传入函数中,注意:如果不传如对应的形参则django会报错
2.3定义template模板
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h3>有名分组</h3>
<p>年份:{{ year }}</p>
<p>月份:{{ month }}</p>
</body>
</html>
备注:分别获取变量year、month镜像模板渲染
2.4访问测试
http://127.0.0.1:8000/order/2005/04/
页面展示如下:
有名分组
年份:2005
月份:04
备注:分别将两个有名分组变量进行渲染
留言