django2中namespace和name的使用

django2中namespace和name的使用

一、在Django <= 1.11 我们通过关键词namespace参数定义名称空间

1、projects/urls.py

  1.  
    from django.conf.urls import url,include
  2.  
     
  3.  
    urlpatterns = [
  4.  
    url(r'blog/', include('blog.urls', namespace='blog'))
  5.  
    ]

2、apps/urls.py

  1.  
    from django.conf.urls import url
  2.  
    from . import views
  3.  
     
  4.  
     
  5.  
    urlpatterns = [
  6.  
    url(r'^login/$', views.login, name="login"),
  7.  
    ]

二、在Django 2.0+ 我们可以省略namespace,把namespace定义到被include的urls.py中去,使用app_name定义名称空间。

1、projects/urls.py

  1.  
    urlpatterns = [
  2.  
    path(r'^blog/', include('blog.urls'))
  3.  
    ]

2、apps/urls.py

  1.  
    from django.urls import path
  2.  
    from . import views
  3.  
     
  4.  
    app_name = 'blog'
  5.  
     
  6.  
    urlpatterns = [
  7.  
    path('login/', views.login, name="login"),
  8.  
    ]

三、在templates中我们还是像原来一样的使用方法

{% url 'blog:login' %}
 
 
原文地址:https://www.cnblogs.com/xiao-xue-di/p/13985747.html