bifangback

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!')

四,访问http://127.0.0.1:8000/

2020-12-29 21_35_24-127.0.0.1_8000.png
上一篇下一篇

猜你喜欢

热点阅读