zoukankan      html  css  js  c++  java
  • Django框架----命名空间模式

    命名空间模式

    即使不同的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='detail')
    ]

    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='detail')
    ]
     

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

    语法:

    '命名空间名称:URL名称'

    模板中使用:

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

    views中的函数中使用

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

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

  • 相关阅读:
    关于《GridView“GridView1”激发了未处理的事件“PageIndexChanging”》的问题!
    励志名言
    Java从入门到精通
    Java学习每天进步一点点
    学**况
    git常用命令
    linux常用命令
    linux yum命令详解
    git分支
    linux常用命令(2)
  • 原文地址:https://www.cnblogs.com/TheLand/p/8670391.html
Copyright © 2011-2022 走看看