Django视图(views)与网址urls
2017-02-06 本文已影响0人
4ffde5305e8f
Django的运行流程如下
浏览器请求 ——> urls ——> views ——> models
将响应发送浏览器 < ——templates
1. 浏览器向网站请求一个网页,Django根据url 调用具体的业务逻辑views中的函数或者类
2. views从models中取得数据库中的数据,models数据库相关操作模块,如果不需要数据库数据,则不需要调用models。
3. views将处理好的数据转发给templates
4. templates将数据渲染成具体的HTML,
5. Django将渲染后的HTML发送给浏览器。
6. 结束
url.py
urls.py模块 其实就是一个 url-views映射表。
urls.py通过 使用正则表达式匹配的url 与 views中的某个函数 相映射。格式如下
[(url,views_func)]
浏览器向Django发送一个请求url,Django在urls.py中查阅 该url所映射的 views中的函数,并调用此函数做后续业务处理
views_func 必须与 views中的函数名一样。
views
这个单词是视图的意思,但是这个模块准确来说应该成为控制层(或者模具)。
views接收用户请求,并做后续的业务逻辑处理,比如从数据库获得数据(这就需要使用models了),逻辑运算等。然后讲处理好的数据转发给 Templates层,templates渲染得到的数据,并生成动态HTML文件。Django在将HTML响应给浏览器。
由上述可知: views层 做的是 调度——分派业务等,就像公司的客服一样,接到电话根据客户需求转接到 技术部,售后部,还是售前部等。
视图views更应该是templates
templates层
templates文件夹内是html模板文件,Django内部的templates层更具得到的数据,将模板html渲染成真正的html文件,并发送给浏览器。
templates层是Django内部的,我们不需要考虑那么多。我们关注的是templates文件夹内的模板HTML。只需要在模板HTML内用模板语言填充数据即可。