django工作原理简介
django工作原理简介
先简单的介绍一下django的工作原理,其中还会涉及到Middleware(中间件,包括request, view, exception, response),URLConf(url映射关系),Template(模板系统)这几个概念,稍后会有介绍 。
1)用户通过浏览器请求一个页面
2)请求到达Request Middlewares中间件,中间件对request做一些预处理或者直接response请求
3)URLConf通过urls.py文件和请求的URL找到相应的view
4)view Middlewares被访问,它同样可以对request做一些处理或直接返回response
5)调用view中的函数
6)view中的方法可以选择性的Model访问底层的数据
7)所有的Model-to-DB的交互都是通过manager完成的
8)如果需要,views可以使用一个特殊的Context
9)Context被传给Template用来生成页面
a:Template使用Filters和tags去渲染输出
b:输出被返回到view
c:HTTPResponse被发送到Response Midlewares
d:任何Response Middlewares都可以丰富response或者返回一个完全不同的response
e:Response返回到浏览器,呈现给用户

django工作原理简介的更多相关文章
- Nginx 反向代理工作原理简介与配置详解
Nginx反向代理工作原理简介与配置详解 by:授客 QQ:1033553122 测试环境 CentOS 6.5-x86_64 nginx-1.10.0 下载地址:http://nginx. ...
- 博客SEO-搜索引擎工作原理简介
资源推荐 Zac出版的<SEO实战密码>是SEO入门的好书,可惜我在当当网买的电子书受DRM版权保护,无法与大家分享. 我在网上找到了此书的 了解搜索引擎 章节,非常详细,且容易理解. ...
- Windows下ARP协议的工作原理简介
ARP协议(Address Resolve Protocol,地址解析协议)工作在TCP/IP协议的第二层-数据链路层,用于将IP地址转换为网络接口的硬件地址(媒体访问控制地址,即MAC地址). ...
- kafka工作原理简介
消息队列 消息队列技术是分布式应用间交换信息的一种技术.消息队列可驻留在内存或磁盘上, 队列存储消息直到它们被应用程序读走.通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置.或在继续执行 ...
- Java虚拟机工作原理简介
1. Java 文件执行过程 2. 运行数据区域 Runtime Data Areas:当运行一个JVM示例时,系统将分配给它一块内存区域(这块内存区域的大小可以设置的),这一内存区域由JVM自己来管 ...
- Django底层原理简介与安装
Django环境目录搭建一栏: 利用wsgiref模块封装好的socket搭建服务端: #利用wsgiref模块封装好的socket演示操作(例如accept\recv) #也可以实现socket服务 ...
- django工作原理
- session工作原理简介
session是什么 首先,我们需要知道session是什么.有比较专业的人将session称之为会话控制.说实在的,如果这么说的话,我也不清楚session到底算是什么. 其实session是一个存 ...
- 基于C++11实现线程池的工作原理
目录 基于C++11实现线程池的工作原理. 简介 线程池的组成 1.线程池管理器 2.工作线程 3.任务接口, 4.任务队列 线程池工作的四种情况. 1.主程序当前没有任务要执行,线程池中的任务队列为 ...
随机推荐
- 【Leetcode_easy】977. Squares of a Sorted Array
problem 977. Squares of a Sorted Array solution: class Solution { public: vector<int> sortedSq ...
- 【JQuery插件】扑克正反面翻牌效果
里面有两个demo,支持X横向和Y纵向翻转两个效果. 对元素的布局有一定的讲究,需要分析一下demo的css. 默认翻转速度为80,不要大于100ms. <!DOCTYPE> <ht ...
- intel 蓝牙驱动安装时报错
BT_20.120.2_64_Win7.exe 安装时报错. 把系统补丁打全,就可以安装 了.
- sonar:查询全部项目的bug和漏洞总数(只查询阻断/严重/主要级别)
1.统计所有项目主要以上的漏洞和bug -- 统计所有项目主要以上的漏洞和bug ,) AND severity IN('BLOCKER','CRITICAL','MAJOR') 2.统计所有某个项目 ...
- spaces的坑
spacemacs的坑,改镜像源,不能使用退格 emacs25以上可以装spacemacs 目前在mac上装emacs26.1 使用spacemacs的时候会有melpa.org访问慢或者访问不了的问 ...
- JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
实现全屏 个人版:function isFullScreen() { var fullscreenElement = document.fullscreenElement || document.we ...
- springboot备份mysql后发送邮件并删除备份文件,支持win和Linux
首先加入springboot的邮箱依赖 <!--邮箱依赖--> <!-- https://mvnrepository.com/artifact/org.springframework ...
- 025 Android 带进度条的对话框(ProgressDialog)
1.ProgressDialog介绍 ProgressDialog可以在当前界面弹出一个置顶于所有界面元素的对话框,同样具有屏蔽其他控件的交互能力,用于提示用户当前操作正在运行,让用户等待: 2.应用 ...
- Redis 缓存问题及解决方案
[相关概念] 缓存击穿:指的是一些热点数据过期,由于热点数据存在并发量大的特性,所以短时间内对数据库的造成很大的冲击,导致系统瘫痪.常见于例如微博系统中明星结婚或出轨时微博瘫痪的情况. 缓存雪崩:指的 ...
- 多线程(8) — ThreadLocal
ThreadLocal是一个线程的局部变量,也就是只有当前线程可以访问,是线程安全的.为每一个线程分配不同的对象,需要在应用层面保证ThreadLocal只起到简单的容器作用. ThreadLocal ...