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都帮我们写好了,所以开发者只需要担任”佛祖”的角色即可!

点赞