Django"取真经"

唐僧一行人受唐王李世民委派,携通关文牒,前往西天取经,一路斩妖除魔,经历九九八十一难,成功到达了西天大雷音寺,在僧人引导下,穿过罗汉堂,终见佛祖,佛祖接见唐僧师徒后,化佛法为经书,师徒取得经书后,兴致极好,未经检查就将经书加入行囊,欲离去之时,幸得弥勒佛指引,携无字经重返大雄宝殿,一番波折后,用紫金钵盂换得真经书,最后携带真经返回东土大唐...

这个故事很像浏览器与服务端Django的通讯过程:

西天取经 一次通讯
"唐王" 普通用户
"东土大唐" 浏览器
"西天取经" 一次面向服务端的请求
"通关文牒" cookie
"路上的妖魔鬼怪" "处理请求"中间件process_request
"雷音寺" Django核心服务
"引路僧人" 路由表
"抵达大雄宝殿" 获得request对象
"十八罗汉" 中间件(process_view)
"佛祖" 视图函数 View
"佛法" 数据 Model
"无字经" 网页模板 Template
"紫金钵盂" 处理响应的中间件process_response
"弥勒佛" 负责异常处理的中间件process_exception

一次面向Django服务端的请求:

第一步:

  • 用户(唐王李世民)从浏览器(东土大唐)发起一次"请求"(西天取经),被"负责处理请求"中间件process_request(妖魔鬼怪,九九八十一难)进行初步处理;

第二步:

  • "请求"匹配路由表(引路僧人),找到对应的视图,先被中间件process_view处理(罗汉堂),然后被视图函数(佛祖)处理.

第三步:

  • 视图函数(佛祖)从数据库中获得数据(佛法),从Templates中获取模板(无字经),将数据与模板结合,产生响应对象("真经")

第四步:

  • 上步获得的响应对象("真经"),被处理响应的中间件process_response(如果不提供"紫金钵盂","真经书"可能会变成"无字经")处理,此时,如果响应出现了异常("真经"变成了"无字经"),会有process_exception(弥勒佛),进行异常处理

第五步:

  • 响应信息("获得的真经")返回浏览器("东土大唐")后,将响应信息("获得的真经")解析展示的用户("唐王")面前
Django
白龙马,蹄朝西...

Django有多好用呢?在整个过程中,所有的中间件,Django都帮我们写好了,所以开发者只需要担任"佛祖"的角色即可!

本文永久更新地址(欢迎来读留言,写评论):

https://www.v2fy.com/p/2020-12-27-django_process_response-1609053552000

你可能感兴趣的:(Django"取真经")