path函数
2022/4/16 6:16:40
本文主要是介绍path函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
path()函数
具有四个参数,两个必须参数:route 和 view,两个可选参数:kwargs 和 name。
- route¶
route 是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项。
这些准则不会匹配 GET 和 POST 参数或域名。例如,
URLconf 在处理请求https://www.example.com/myapp/ 时,它会尝试匹配 myapp/ 。
处理请求 https://www.example.com/myapp/?page=3 时,也只会尝试匹配 myapp/。 - view¶
当 Django 找到了一个匹配的准则,就会调用这个特定的视图函数 (必须是视图函数,如果是类视图的话,要使用as_view()转换成函数),并传入一个 HttpRequest 对象作为第一个参数,被"捕获"的参数以关键字参数的形式传入。 - kwargs¶
任意个关键字参数可以作为一个字典传递给目标视图函数。 - name¶
为你的 URL 取名能使你在 Django 的任意地方唯一地引用它,尤其是在模板中。这个有用的特性允许你只改一个文件就能全局地修改某个 URL 模式。
上面介绍的path中,第一个参数route使用的是非正则表达式可以表示的普通路由路径。
注意:
要从URL捕获值,请使用尖括号。
捕获的值可以选择包括转换器类型。例如,用于 int:name捕获整数参数。如果未包含转换器/,则匹配除字符之外的任何字符串。
没有必要添加前导斜杠,因为每个URL都有。例如,它articles不是/articles。
默认情况下,以下路径转换器可用:
- str- 匹配除路径分隔符之外的任何非空字符串'/'。如果转换器未包含在表达式中,则这是默认值。
- int - 匹配零或任何正整数。返回一个int。
- slug - 匹配由ASCII字母或数字组成的任何slug字符串,以及连字符和下划线字符。例如, building-your-1st-django-site。
- uuid - 匹配格式化的UUID。要防止多个URL映射到同一页面,必须包含短划线并且字母必须为小写。例如,075194d3-6885-417e-a8a8-6c931e272f00。返回一个 UUID实例。
- path- 匹配任何非空字符串,包括路径分隔符 '/'。这使您可以匹配完整的URL路径,而不仅仅是URL路径的一部分str。
比如要匹配一个视图中的函数路由,该函数有两个形参:
views.py
def detail(request, book_id):
第一个request是默认的,那么路径自动匹配该函数的第二个形参,匹配格式:int:book_id,并返回0或正整数。
app.urls.py
# coding=utf-8 from django.urls import path from books import views from books.views import TestView urlpatterns = [ # 匹配首页 只能写成'' 不能写成'/' # path('/', views.index, name='index'), # 不能写成views.index() 这样会执行index函数 得到他的返回值 # 写成views.index 将函数地址值传递给django框架 他来帮我们调用index函数 path('', views.index, name='index'), # path中的route必须带/ path('login/', views.login, name='login'), # URLConf, path('<int:book_id>/', views.detail, name='book_id'), # 如果写死了 view中获取year 访问地址就要是 articles/2022/2022 # path('articles/2022/', views.special_case_2022), path('articles/<int:year>/', views.year_archive), path('articles/<int:year>/<int:month>/', views.month_archive), path('articles/<int:year>/<int:month>/<slug:slug>/', views.slug_archive), path('articles/<int:year>/<int:month>/<str:title>/', views.title_archive), # 类视图 path('view_class/', TestView.as_view(), name='test') ]
这篇关于path函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南