下面是关于Django多个app urls配置的完整攻略及两条示例说明:
假设我们现在有两个Django app:blog
和shop
,并且每个app都有自己的urls配置文件。我们需要将这两个app的urls整合在一起,以便可以在一个Django项目中使用它们。下面是具体的步骤:
在项目目录下创建一个urls.py
文件,并添加以下内容:
from django.urls import include, path
urlpatterns = [
path('blog/', include('blog.urls')),
path('shop/', include('shop.urls')),
]
在这个urls文件中,我们使用include()
函数将blog.urls
和shop.urls
包含进来。对于这两个路径blog/
和shop/
,我们将它们映射到各自的app的urls配置文件中去。
分别在blog
和shop
应用的目录下创建一个urls.py
文件,并在其中添加路径:
blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('post/<int:pk>/', views.post_detail, name='post_detail'),
# ... other paths ...
]
shop/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
path('product/<int:pk>/', views.product_detail, name='product_detail'),
# ... other paths ...
]
在这两个urls配置文件中,我们分别定义了blog
和shop
应用的路径。需要注意的是,这些路径的前缀是blog/
和shop/
,分别对应于我们在主urls配置文件中定义的'blog/'
和'shop/'
。
这就是将多个Django app的urls整合到一起的基本步骤。当你启动Django项目后,这些路径就会被注册到Django的路由映射表中,你就可以访问它们了。
一个常见的场景就是我们要在template中使用Django多个app的url。下面是一个例子:
<a href="{% url 'blog:index' %}">Blog Home</a>
<a href="{% url 'shop:index' %}">Shop Home</a>
在这个例子中,我们使用{% url %}
模板标签来生成链接。注意,我们在url
标签中使用的参数名称(例如'blog:index'
和'shop:index'
)与我们在urls配置文件中定义的path名称是一致的。
在视图中动态生成urls也是一个很常见的场景。下面是一个例子:
from django.shortcuts import render
from django.urls import reverse
def my_view(request):
# Generate a URL using the named URL pattern of another app
blog_url = reverse('blog:index')
shop_url = reverse('shop:index')
# ... do something else ...
return render(request, 'my_template.html', {'blog_url': blog_url, 'shop_url': shop_url})
在这个例子中,我们使用reverse()
函数来生成urls。注意我们使用的参数名称(例如'blog:index'
和'shop:index'
)是与我们在urls配置文件中定义的path名称是一致的。
以上就是关于Django多个app urls配置的完整攻略及两个示例说明。希望对你有所帮助!
本文链接:http://task.lmcjl.com/news/14371.html