代码改变世界

实战Django的URL路由分发

2020-10-01 12:40  idea555  阅读(150)  评论(0)    收藏  举报

目录篇:Django之前后端交互篇目录 点击跳转
主篇: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

  1.  
    from django.contrib import admin
  2.  
    from django.urls import path,re_path #Django版本2.0以上
  3.  
    from project_burgess import views
  4.  
    from django.conf.urls import url #Django2.0
  5.  
    from django.conf.urls import include
  6.  
     
  7.  
    urlpatterns = [
  8.  
    path('admin/', admin.site.urls),
  9.  
     
  10.  
    #路由分发
  11.  
    #cmdb_app
  12.  
    re_path('cmdb/',include("cmdb.urls")),
  13.  
    #url(r'^cmdb/', include("cmdb.urls")),
  14.  
    #monitor_app
  15.  
    re_path('monitor/', include("monitor.urls")),
  16.  
    # url(r'^monitor/', include("monitor.urls")),
  17.  
     
  18.  
    ]

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

cmdb

url路径:project_burgess/cmdb/urls.py

  1.  
    __author__ = "Burgess Zheng"
  2.  
    #!/usr/bin/env python
  3.  
    #-*- coding:utf-8 -*-
  4.  
    from django.urls import path,re_path #Django版本2.0以上
  5.  
    from cmdb import views
  6.  
    from django.conf.urls import url #Django2.0
  7.  
     
  8.  
     
  9.  
    urlpatterns = [
  10.  
    re_path('',views.burgess_cmdb),
  11.  
    #url(r'',views.burgess_cmdb),
  12.  
    ]

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

  1.  
    from django.shortcuts import render
  2.  
    # Create your views here.
  3.  
     
  4.  
    def burgess_cmdb(request):
  5.  
    return render(request,'burgess_cmdb.html')

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

  1.  
    <!DOCTYPE html>
  2.  
    <html lang="en">
  3.  
    <head>
  4.  
    <meta charset="UTF-8">
  5.  
    <title>Title</title>
  6.  
    </head>
  7.  
    <body>
  8.  
    <h1>burgess CMDB</h1>
  9.  
    </body>
  10.  
    </html>

monitor

url路径:project_burgess/monitor/urls.py

  1.  
    __author__ = "Burgess Zheng"
  2.  
    #!/usr/bin/env python
  3.  
    #-*- coding:utf-8 -*-
  4.  
    from django.urls import path,re_path #Django版本2.0以上
  5.  
    from monitor import views
  6.  
    from django.conf.urls import url #Django2.0
  7.  
     
  8.  
    urlpatterns = [
  9.  
    re_path('',views.burgess_monitor),
  10.  
    #url(r'',views.burgess_monitor),
  11.  
    ]

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

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

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

  1.  
    <!DOCTYPE html>
  2.  
    <html lang="en">
  3.  
    <head>
  4.  
    <meta charset="UTF-8">
  5.  
    <title>Title</title>
  6.  
    </head>
  7.  
    <body>
  8.  
    <h1>burgess Monitor</h1>
  9.  
    </body>
  10.  
    </html>

5.启动Django

手动:python manage.py runserver 127.0.0.1:8000

pycharm:

6.浏览器访问URL结果

目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之URL路由系统【交互篇一】点击跳转