锋哥原创的Python Web开发 Django5视频教程:
2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~共计22条视频,包括:2024版 Django5 Python web开发 视频教程(无废话版) 玩命更新中~、第2讲 Django5安装、第3讲 Django5创建项目(用命令方式)等,UP主更多精彩视频,请关注UP账号。https://www.bilibili.com/video/BV14Z421z78C/在平时开发中,有时候一个路由可以代表多个不同的页面,比如博客系统里面,有1千个博客页面,按照前面学习的方式,需要写1千个路由才能实现,这种做法显然不可取,维护也麻烦。我们可以通过路由变量,来实现一个路由代表多个页面。
路由的变量类型有字符类型、整型、slug 和 uuid,最为常用的是字符类型和整型。各个类型说明如下。
-
字符类型:匹配任何非空字符串,但不含斜杠。如果没有指定类型,就默认使用该类型。
-
整型:匹配О和正整数。
-
slug:可理解为注释、后缀或附属等概念,常作为路由的解释性字符。可匹配任何ASCII字符以及连接符和下画线,能使路由更加清晰易懂。比如网页的标题是“15岁的孩子”,其路由地址可以设置为“15-sui-de-hai-zi”。
-
uuid:匹配一个uuid格式的对象。为了防止冲突,规定必须使用“”并且所有字母必须小写,例如175194d3-6885-437e-a8a8-6c231e272f00。
下面列举实例一 博客帖子请求:
首先urls.py里定义路由映射:
path('blog/<int:id>', helloWorld.views.blog)
views.py里再定义blog函数实现:
def blog(request, id):return HttpResponse('id是' + str(id) + "的博客页面")
这样,我们就实现了一个带变量的路由的多个博客页面的实现。
当然我们也可以带多个路由变量。让博客的路由地址,在带上年月日变量。
urls.py修改
path('blog2/<int:year>/<int:month>/<int:day>/<int:id>', helloWorld.views.blog2)
views.py修改
def blog2(request, year, month, day, id):return HttpResponse(str(year) + '/' + str(month) + '/' + str(day) + '/' + ' id是' + str(id) + "的博客页面")
运行测试: