bifangback-使用多级路由管理Urls
2020-12-29 本文已影响0人
万州客
当一个Django项目里面创建多个app应用时,主程序的urls.py路由系统就会需要负责多个路由表,但为了方便管理,我们会在每个app应用里,自己管理自身的路由情况,然后在主程序里面,导入其它app的路由表,形成二级路由。算是一种最佳实践。
一,在每个app下,新建一个urls.py文件
每个urls.py的内容如下:
from django.urls import path
app_name = "account"
urlpatterns = [
]
其中app_name对应于自己的app应用名称。
在以后需要增加新的Url路由时,在这里直接定义即可。
二,在根目录下的bifangback/urls.py文件里,包含所有应用的urls.py
"""bifangback URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/3.0/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.urls import path
from django.urls import include
from .views import index
urlpatterns = [
path('', index, name='index'),
path('admin/', admin.site.urls),
]
urlpatterns += [
path('account/', include('account.urls')),
path('app/', include('app.urls')),
path('deploy/', include('deploy.urls')),
path('env/', include('env.urls')),
path('log/', include('log.urls')),
path('release/', include('release.urls')),
path('server/', include('server.urls')),
]
其中,如果是用django本身的模板语法,还可以定义namespace之类的,用于更灵活的url反向解析。
由于本项目采用前后端分离,为了好看点,path('', index, name='index')这行定义了一个默认的url。
三,定义一个默认的函数视图
在根目录下的bifangback/views.py里,定义一个最简函数视图
from django.http import HttpResponse
def index(request):
return HttpResponse('Hello, Bifang!')