zoukankan      html  css  js  c++  java
  • Django基础之命名空间模式(include)

    即使不同的APP使用相同的URL名称,URL的命名空间模式也可以让你唯一反转命名的URL。 例如:

    project中的urls.py

    from django.conf.urls import url, include
    urlpatterns = [
        url(r"^app01/", include("app01.urls", namespace="app01")),
        url(r"^app02/", include("app02.urls", namespace="app02"))
    ]

    app01中的urls.py

    from django.conf.urls import url
    from app01 import views
    
    app_name = "app01"
    urlpatterns = [
        url(r"^(?P<pk>d+)/$", views.detail, name="detail1")
    ]

    app02中的urls.py

    from django.conf.urls import url
    from app02 import views
    
    app_name = "app02"
    urlpatterns = [
        url(r"^(P<pk>d+)/$", views.detail, name="detail1")
    ]
    

    现在,这两个app中的url名称是重复的,但是反转URL的时候就可以通过命名空间的名称得到当前的URL。

    语法:

    命名空间名称: URL名称

    模板中使用:

    {% url "app01:detail" pk=12 pp=99 %}
    

    views中的函数中使用:

    v = reverse("app01:detail", kwargs={"pk":11})
    

    这样,即便app中URL的命名相同,也可以反转的得到正确的URL。

     

  • 相关阅读:
    网易云音乐
    喜马拉雅FM
    喜马拉雅
    169美女图片
    美女图片
    Kerberos简介及常见问题
    【转载】Spark性能优化指南——高级篇
    【转载】 Spark性能优化指南——基础篇
    Sqoop使用手册
    kafka性能基准测试
  • 原文地址:https://www.cnblogs.com/yang-wei/p/9997618.html
Copyright © 2011-2022 走看看