实战Django的URL路由分发

多个app的时候我们使用路由分发,因为如果把所有的app写在统一个urls.py里面会导致复杂不说,以后分工就有点麻烦。
如:一个做运维自动化平台的,Monitor(监控)的团队,一个做cmdb的团队,然后2个团队修改同个urls.py完全没必要.,这样后期修改就不会乱了也无需修改对方团队的东西(互不影响)
应用场景:构架你自己的运维平台的话,有资产管理啊,Monitor啊,openstyle..等之类

1.创建Django项目

实战Django创建项目:https://blog.csdn.net/Burgess_zheng/article/details/86505526

2.创建两个app(并且在两个app目录下创建一个urls.py文件)

进入项目目录下

创建app命令:

    F:\Burgess\Python\pycharm实验脚本\test\project_burgess>python manage.py startapp cmdb
    F:\Burgess\Python\pycharm实验脚本\test\project_burgess>python manage.py startapp monitor

创建后的项目的app目录图示:

三.项目url进行路由分发

路径:project_burgess/project_burgess/urls.py

from django.contrib import admin
from django.urls import path,re_path #Django版本2.0以上
from project_burgess import views
from django.conf.urls import url  #Django2.0
from django.conf.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    
    #路由分发
        #cmdb_app
    re_path('cmdb/',include("cmdb.urls")),
    #url(r'^cmdb/', include("cmdb.urls")),
        #monitor_app
    re_path('monitor/', include("monitor.urls")),
    # url(r'^monitor/', include("monitor.urls")),

]

四.APP下的URL创建,URL对应函数,响应的html

cmdb

url路径:project_burgess/cmdb/urls.py

__author__ = "Burgess Zheng"
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from django.urls import path,re_path #Django版本2.0以上
from cmdb import views
from django.conf.urls import url  #Django2.0


urlpatterns = [
    re_path('',views.burgess_cmdb),
    #url(r'',views.burgess_cmdb),
]

url对应处理函数路径:project_burgess/cmdb/views.py

from django.shortcuts import render
# Create your views here.

def burgess_cmdb(request):
    return render(request,'burgess_cmdb.html')

响应用户html:project_burgess/templates/burgess_cmdb.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>burgess CMDB</h1>
</body>
</html>

monitor

url路径:project_burgess/monitor/urls.py

__author__ = "Burgess Zheng"
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from django.urls import path,re_path #Django版本2.0以上
from monitor import views
from django.conf.urls import url  #Django2.0

urlpatterns = [
    re_path('',views.burgess_monitor),
    #url(r'',views.burgess_monitor),
]

url对应处理函数路径:project_burgess/monitor/views.py

from django.shortcuts import render
# Create your views here.
def burgess_monitor(request):
    return render(request,'burgess_monitor.html')

响应用户html:project_burgess/templates/burgess_monitor.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <h1>burgess Monitor</h1>
</body>
</html>

5.启动Django

手动:python manage.py runserver 127.0.0.1:8000

pycharm:

6.浏览器访问URL结果

猜你喜欢

转载自blog.csdn.net/Burgess_zheng/article/details/86529768