在Django中,path和url函数用于先匹配URL并执行相应视图函数。
path函数的使用
语法结构
path(route, view, kwargs=None, name=None)
参数说明
route
:字符串类型,表示 URL 规则view
:处理请求的函数(视图函数), 每个视图都有一个函数视图对应kwargs
:字典类型,传递额外的参数给视图函数name
:给这个URL起一个别名,可以在模板中使用该别名直接指定URL
示例 1
下面是一个基本的 path 函数示例:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('about/', views.about, name='about'),
]
' '
: 表示根URL。'about/'
: 表示导航菜单栏中的“About”页面。
示例 2
接下来的示例展示了如何使用path函数传递slug参数:
from django.urls import path
from . views import ProductDetailView
urlpatterns = [
path('<slug:slug>/', ProductDetailView.as_view(), name='product_detail_url'),
]
'<slug:slug>/'
: 表示动态生成的URL,格式为http://domain.com/slug,其中<slug:slug>
是一个变量,在视图函数中可以使用该变量查询数据库并显示相应内容。
url函数的使用
语法结构
url(regex, view, kwargs=None, name=None)
参数说明
regex
:正则表达式字符串或者复合对象view
:处理请求的视图函数,每个视图都有一个函数视图对应kwargs
:字典类型,传递额外的参数。Django 2.x 以上版本开始不支持该参数,可以将添加的参数放置在视图里。name
:给这个URL起一个别名,可以在模板中使用该别名部分指定URL
示例
下面是一个使用url函数定义URL映射的示例:
from django.conf.urls import url
from myapp.views import my_view
urlpatterns = [
url(r'^archive/$', my_view),
url(r'^about/$', my_view),
url(r'^blog/$', my_view),
]
'^archive/$'
、'^about/$'
、'^blog/$'
: 表示单独URL,使用了正则表达式字符串匹配URL。
总结:path 函数是 Django 引入的一种简化 URL 配置的方式,它直接匹配目录名或者前缀,并将剩余的位传递给应用视图,通常使用path函数;url 函数则使用正则表达式来匹配 URL,并且这两个函数都能用于配置 URL 映射。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django中path和url函数的具体使用 - Python技术站