多个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: