一、应用
应用在Django项目中是一个独立的业务模块,可以包含自己的路由、视图、模版、模型,可以看成一个小的mtv
创建步骤
1.项目下用manage.py中的子命令创建应用文件夹
python3 manage.py startapp 文件夹名
2.在settings.py INSTALLED_APPS 列表中安装此应用
 
初始应用结构
migrations文件夹:模型层迁移文件
admin.py :管理后台
apps.py:应用下的相关配置
models.py:模型层
tests.py:测试入口
views.py:应用下的视图层
 
 
二、分布式路由
1.分布式路由概念
Django中,主路由配置文件urls.py可以不处理用户具体路由,主要路由配置文件的可以做请求的分发(分布式处理),具体的请求可 以由各自的应用来进行处理
在应用下创建该应用的urls.py 路由文件,由主路由做请求的分发指向对应的应用路由,再由单独的应用路由进行请求处理
 
2.配置分布式路由
1.主路由中调用include函数
语法:include('app名字.url模块名')
作用:用于将当前路由转到各个应用的路由配置文件的urlpatterns进行分布式处理
 
2.应用下配置urls.py
应用下手动配置urls.py文件
内容结构与主路由完全一致
 
示例:
导包:from django.urls import include
 
在主路由中自定义路径,然后使用include执行指定应用的urls
如图 请求http://127/0.0.0.1:8000/new/index 的时候,主路由匹配到new,然后 include将指向new_apps.urls,然后应用下的路由匹配index,指向对应的视图做相应请求
 
PS : 主路由有admin/路径,子路由如果有重名路径,会冲突
 
三、应用下的模版
1.应用内部可以配置模版目录
1.应用下手动创建templates文件夹
2.在settings.py中开启应用模版功能
TEMPLATE配置项中的 APP_DIRS值为True即可 #默认是开启的
2.应用下的templates和外层的templates都存在时,Django的查找规则
1.优先查找外层的templates目录下的模版
2.按INSTALLED_APPS配置下的应用顺序逐层查找
3.如果外层和应用下有同名html文件,会优先匹配到外层,我们可以在应用下templates创建一个应用同名文件夹,将模版放在文件夹下,
多写一层路径,比如new_apps/index.html,利用嵌套层级解决这种问题
 

8.-Django应用及分布式路由的更多相关文章

  1. 简单了解Django应用app及分布式路由

    前言 应用在Django的项目中是一个独立的业务模块,可以包含自己的路由,视图,模板,模型. 一 创建应用程序 创建步骤 用manage.py中的子命令startapp创建应用文件夹 在setting ...

  2. django第四天(路由别名,django2.x新特性和自定义转换器)

    django第四天 路由别名 1.路由别名: 给路由路径命名一个名字 url(r'^login/$',views.login,name = 'login') 2.为什么要用路由别名 ①当路由路径过长时 ...

  3. Django框架——基础之路由系统(urls.py)

    1.URL路由系统前言 URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除 ...

  4. Django框架——基础之路由系统(urls.py)11111111

    1.URL路由系统前言 URL是Web服务的入口,用户通过浏览器发送过来的任何请求,都是发送到一个指定的URL地址,然后被响应. 在Django项目中编写路由,就是向外暴露我们接收哪些URL的请求,除 ...

  5. Django的urls(路由)

    目录 Django的urls(路由) 正则表达式详解 路由匹配(分组匹配) 无名分组 有名分组 反向解析 无名分组反向解析 有名分组反向解析 路由分发 名称空间 虚拟环境 伪静态 Django的url ...

  6. Django基础三之路由、视图、模板

    Django基础三之路由.视图.模板 目录 Django基础三之路由.视图.模板 1. Django 请求和返回周期 1.1 路由层之路由匹配 1.2 有名分组 1.3 无名分组 2. 反射解析 3. ...

  7. python 学习笔记十六 django深入学习一 路由系统,模板,admin,数据库操作

    django 请求流程图 django 路由系统 在django中我们可以通过定义urls,让不同的url路由到不同的处理函数 from . import views urlpatterns = [ ...

  8. django celery的分布式异步之路(二) 高并发

    当你跑通了前面一个demo,博客地址:http://www.cnblogs.com/kangoroo/p/7299920.html,那么你的分布式异步之旅已经起步了. 性能和稳定性是web服务的核心评 ...

  9. django celery的分布式异步之路(一) 起步

    如果你看完本文还有兴趣的话,可以看看进阶篇:http://www.cnblogs.com/kangoroo/p/7300433.html 设想你遇到如下场景: 1)高并发 2)请求的执行相当消耗机器资 ...

随机推荐

  1. Redis 03 字符串

    参考源 https://www.bilibili.com/video/BV1S54y1R7SB?spm_id_from=333.999.0.0 版本 本文章基于 Redis 6.2.6 应用场景:计数 ...

  2. Host long.com not found: 2(SERVFAIL)

    环境: centos  7.9 地址:192.168.200.100 相关配置 name.conf文件: named.zones文件: 正反解析文件: 重启DNS服务: 1 [root@server ...

  3. 关于python如何引用excel文件

    关于python如何引用excel文件 import pandas as pd #引用pandas库,as:将pandas简写为pd Nowcoder = pd.read_excel("1. ...

  4. Unhandled Exception: MissingPluginException(No implementation found for method launch on channel)

    在添加依赖包时,可能会出现Unhandled Exception: MissingPluginException(No implementation found for method launch o ...

  5. 【java】学习路径25-ArrayList类,Vector类,LinkedList类的使用和区别,Iterator迭代器的使用

    ArrayList的使用 ArrayList类:可变化长度的数组. 与一般的数组不同的是,其长度不固定,可以添加任意类型的数据. 也可以添加不同类型的数据,但是一般不这么做. ArrayList类位于 ...

  6. AtCoder Beginner Contest 254(D-E)

    Tasks - AtCoder Beginner Contest 254 D - Together Square 题意: 给定一个N,找出所有不超过N的 ( i , j ),使得( i * j )是一 ...

  7. Html飞机大战(四):状态的切换(界面加载类的编辑)

    好家伙,接着写   既然我们涉及到状态了,那么我们也会涉及到状态的切换   那么我们怎样切换状态呢? 想象一下,如果我玩的游戏暂停了,那么我们肯定是通过点击或者按下某个按键来让游戏继续   这里我们选 ...

  8. 诺塔斯读写卡QT SDK笔记

    卡片操作函数调用 寻卡: Request --> LotusCardRequest 防撞处理: Anticollission --> LotusCardAnticoll 选卡: Selec ...

  9. Bypass Windows Defender Dump Lsass(手法拙劣)

    0x00.前言 Windows Defender是一款内置在Windows操作系统的杀毒软件程序,本文旨在记录实战环境中,服务器存在Windows Defender情况下转储凭证的渗透手法,技术简单粗 ...

  10. Java Socket底层实现浅析

    最近在学Java的socket编程,发现Java可以很简单的通过socketAPI实现网络通信,但是我一直有个疑问,Java的socket的底层是怎么实现的? 如果没记错的话Java的底层是C和C++ ...