Django向视图添加URL路径

URL 路径可将URL 映射至视图上。具体来说,URL 路径由字符串路径、视图和可在项目范围内命名URL的名称(名称为可选参数)组成。Django 遍历每一个URL路径,并在第一个与请求URL匹配的路径处停止。随后,Django 导入与URL 路径匹配的视图并对其加以执行、传递HttpRequest 类实例和关键字(或者位置参数)。

下面在blog 应用程序目录的urls.py 文件中添加下列代码行:

from django.urls import path
from . import views

app_name = 'blog'

urlpatterns = [
    path('', views.post_list, name='post_list'),  
    path('<int:year>/<int:month>/<int:day>/<slug:post>/', views.post_detail, name='post_detail'),
]

在上述代码中,通过app_name变量定义了应用程序命名空间,并可通过应用程序组织URL,并在引用时使用对应名称。这里通过 path() 函数定义了两种不同的路径。其中,第一个URL 路径不接收任何参数,并映射至 post_list 视图。第二个路径接收下列4个参数,并映射至post_detail 视图上。

此处,我们使用尖括号捕捉URL值。任何定义于URL 路径中的值(形如)均作为字符串被捕捉。我们将使用路径转换器(如int:year)以实现特定的匹配,并返回一个整数和slug:post,其与slug 实现特定的匹配(由ASCII字母、数字、连字符和下划线构成的字符串)。

如果path() 和转换器无法满足当前要求,则可采用 re_path() 定义包含 Python 正则表达式的复杂URL 路径。

接下来,需要在项目的主URL 路径中包含blog 应用程序的URL路径。对此,可编辑位于项目mysite 目录中的 urls.py 文件,如下所示:

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('blog/', include('blog.urls', namespace='blog')),
]

利用include 定义的新URL 路径引用了定义于blog 应用程序中的URL 路径,因而包含于blog/路径中。另外,此类路径还位于命名空间blog中。此外,命名空间须在整个项目中保持唯一。稍后,我们即可方便的引用blog URL,如blog:post_list 和 blog:post_detail。

后面本人将对如何创建视图模板进行讲解,谢谢大家的支持。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Erudite_x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值