• 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 路径中的值(形如<parameter>)均作为字符串被捕捉。我们将使用路径转换器(如<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。

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

  • 相关阅读:
    crawler_URL编码原理详解
    linux_常用压缩,解压缩命令
    myql_链接丢失异常_mybaits _等框架_报错_The last packet successfully
    linux_shell_类似sql的orderby 取最大值
    php_cawler_html嵌套标签清洗
    vim_编码配置文件_utf8乱码解决
    python_random随机
    linux_shell_轮询触发启动脚本
    crawler_http关闭连接
    linux_mac_配置itrem2 rz sz_bug处理
  • 原文地址:https://www.cnblogs.com/xcbb/p/14278958.html
Copyright © 2020-2023  润新知