path
是Django中URL路由系统的一种语法,它用于定义URL路径和视图函数之间的映射关系。以下是path
的一些常见用法:
from django.urls import path
from . import views
urlpatterns = [ path('hello/', views.hello), ]
这个例子中,我们定义了一个路径hello/
,它与视图函数hello
相关联。当用户请求这个路径时,Django将调用views.hello
函数,并返回该函数的结果。
from django.urls import path
from . import views
urlpatterns = [ path('hello/<str:name>/', views.hello), ]
在这个例子中,我们使用了<str:name>
语法定义了一个参数,它的值是一个字符串类型,名称为name
。例如,如果用户请求hello/John/
,Django将调用views.hello
函数,并将name
参数设置为John
。
from django.urls import path
from . import views
urlpatterns = [ path('hello/<int:age>/', views.hello), ]
这个例子中,我们使用了<int:age>
语法,定义了一个参数age
,它的值是一个整数类型。例如,如果用户请求hello/18/
,Django将调用views.hello
函数,并将age
参数设置为18
。
from django.urls import path
from . import views
urlpatterns = [ path('hello/<int:age>/', views.hello, name='hello'), ]
在这个例子中,我们为URL指定了一个名称hello
,它允许我们在模板中使用这个名称来引用这个URL。例如,如果我们想在模板中链接到这个URL,可以使用{% url 'hello' age=18 %}
语法生成链接。
from django.urls import re_path
from . import views
urlpatterns = [ re_path(r'^hello/(?P<name>[a-zA-Z]+)/$', views.hello), ]
在这个例子中,我们使用了re_path
函数和正则表达式来定义URL。^hello/(?P<name>[a-zA-Z]+)/$
表示一个以hello/
开头,后面跟着一个字符串类型的参数name
,并以/
结尾的URL。例如,如果用户请求hello/John/
,Django将调用views.hello
函数,并将name
参数设置为John
。
path('my-view/<int:page_id>/', MyView.as_view(), name='my-view'), 这行代码什么意思
这行代码是Django中URL路由系统的一部分,它将请求路径(或URL)my-view/<int:page_id>/
映射到一个名为MyView
的视图类,并给它一个名为my-view
的URL名称。
my-view/
是一个固定的字符串,表示这个URL的一部分。
<int:page_id>
是一个路由参数,表示这个URL中包含一个名为page_id
的整数参数。<int:page_id>
这个字符串使用了Django的路由语法,它定义了一个整数类型的路由参数,并将这个参数的名称设置为page_id
。例如,my-view/1/
和my-view/2/
都是有效的URL。
MyView.as_view()
表示将请求路由到一个名为MyView
的视图类,其中.as_view()
是将这个视图转换成一个可调用的函数的方法。这个视图类可以是一个函数,也可以是一个基于类的视图。
name='my-view'
是一个给这个URL定义的名称。它可以在模板中使用,或者在Python代码中使用reverse()
函数生成这个URL的实际路径。
因此,当用户访问my-view/1/
时,Django将调用MyView
视图类,并将page_id
参数设置为1。如果你在视图类中使用了这个参数,你可以在请求中访问它。同时,你也可以在Python代码中使用reverse('my-view', args=[1])
来生成这个URL的实际路径,其中args
参数包含这个URL中的参数列表。
以上是path
的一些常见用法,当然还有其他用法,例如include
语法、namespace
语法等等。Django提供了详细的文档来解释这些用法的细节,可以在Django官方文档中查看。
我想等网站访问量多了,在这个位置放个广告。网站纯公益,但是用爱发电服务器也要钱啊 ----------狂奔的小蜗牛