Django(part4)--练习及re_path方法

学习笔记,仅供参考




练习1


需求

输入的访问地址为:

http://127.0.0.1:8000/year/2018
http://127.0.0.1:8000/year/2019
http://127.0.0.1:8000/year/四位数年份

得到的网页的响应内容为:

输入年份为:2018
输入年份为:2019
输入年份为:四位数年份;

我们看到,在这里需要用正则表达式去匹配年份,由于path函数不支持正则表达式,所以,我们需要学习另一个函数:re_path

re_path方法

re_path 方法来兼容 1.x 版本中的 url方法,一些正则表达式的规则也可以通过 re_path来实现

from django.urls import re_path
re_path(r'year/(\d{4})/', views.year),

实现需求


urls.py

from django.contrib import admin
from django.urls import path
from . import views
from django.urls import re_path
#.表示从当前包里导入

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'year/(\d{4})/', views.year),
    
]

views.py

def year(request, y):
    html = "输入年份为:" + y
    return HttpResponse(html)

我们看到,正则表达式中分组获取的数据,会作为实参,被传入year方法中的第二个参数y,这个参数y绑定的数据类型是字符串

打开浏览器,输入http://127.0.0.1:8000/year/2020/:


练习2


需求


访问地址:

http://127.0.0.1:8000/birthday/四位数年份/1~2位数月份/1~2位数日期

得到的网页的响应内容为:

生日为:XXXX年XX月XX日

实现需求


urls.py

urlpatterns = [
    path('admin/', admin.site.urls),
    re_path(r'birthday/(\d{4})/(\d{1,2})/(\d{1,2})/', views.page_birth),
    
]

views.py

def page_birth(request, year, month, day):
    html = "生日为:"+year+"年"+month+"月"+day+"日"
    return HttpResponse(html)

打开浏览器,输入http://127.0.0.1:8000/birthday/1997/9/28/:


猜你喜欢

转载自blog.csdn.net/m0_37422217/article/details/106737685