上篇文章讲到视图部分知识,本文将对视图的用法进行深入学习。
1
自定义视图
随着我们的Web站点页面越来越多,页面链接会越来越杂乱无章。因此有必要在项目一开始就对其进行管理。 /articles/123
的效果
views.py实现了articles方法
这其中url()函数具有四个参数, regex和view是必填选项,kwargs和name是非必填选项 regex
: 正则表达式的缩写。Djaogo从第一个正则表达式开始,依次对请求url进行匹配,直到找到匹配到那个为止。 view
: 目标视图,即views.py文件中的函数。 kwargs
: 任何关键字参数都可以以字典形式传递给目标视图。 name
: 命名你的URL, 相当于给url取个别名。 这样就可以在Django的其它地方尤其是模板中,通过名称来明确地引用这个URL。 这个强大的特性可以使你仅仅修改一个文件就可以改变全局的URL模式。
2
模板
学到这里,你会许会有个疑问。web页面应该含有html代码的,为什么我没有看到html页面呢?我的web页面不能单单只是一句话,应该有导航栏,内容栏,底部栏吧。要满足这需求,则需要用到渲染模板的方法来显示内容。
我们的首页 home.html,继承或者说扩展(extends)原来的 base.html,可以简单这样写,重写部分代码(默认值的那一部分不用改)。代码如下:
url.py文件增加相对应的url函数就行,而views.py文件就需要改动了。
3
部署运行
view.py属于View层,是用于显示界面。但是在实际应用中,往往view的数据不是写死的,是由模型层传输过来的。怎么将model层传输过来数据显示在视图上呢?Django模板算是利器,它具有循环、条件判断、常用的标签、过滤器等功能,这能消除我们的刚才的烦恼。
{% 标签 %}
, 例如
2)变量的写法: 使用{{ 变量 }}
, 例如
补充知识
变量 | 描述 |
---|---|
forloop.counter | 索引从 1 开始算 |
forloop.counter0 | 索引从 0 开始算 |
forloop.revcounter | 索引从最大长度到 1 |
forloop.revcounter0 | 索引从最大长度到 0 |
forloop.first | 当遍历的元素为第一项时为真 |
forloop.last | 当遍历的元素为最后一项时为真 |
forloop.parentloop | 用在嵌套的 for 循环中,获取上一层 for 循环的 forloop |
2)如果想表示空值,代码如下
- END -
极客猴
分享干货的公众号
长按指纹 > 识别图中二维码 > 添加关注