Django视图层模板层

Posted lzss

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django视图层模板层相关的知识,希望对你有一定的参考价值。

过滤器方法

  • upper 大写方式输出
  • add 给value加上一个数值
  • capfirst 第一个字母大写
  • center 输出指定长度的字符串,把变量居中
  • cut 删除指定字符串
  • date 格式化日期
  • default 如果值不存在,则使用默认值代替
  • length 返回列表中元素的个数或字符串长度
  • length_is 检查列表,字符串长度是否符合指定值

标签的方法

for标签

{% for 临时遍历 in 序列%}....{%endfor%}

  • forloop.counter 当前循环的索引值(从1开始)
  • forloop.counter0 当前循环的索引值(从0开始)
  • forloop.revcounter 当前循环的倒序索引(从1开始)
  • forloop.revcounter0 当前循环的倒序索引(从0开始)
  • forloop.first 当前循环是不是第一次循环(布尔值)
  • forloop.last 当前循环是不是最后一次循环(布尔值)

for...empty标签

如果变量名不存在或者内容为空的时候显示{%empty%}中的内容,否则不执行

{% for game in games%}
...{%empty%}...{%endfor%}

...if标签

(1)if 标签
格式:
{% if 判断条件 %}
… {% endif %} 注: if 语句支持 and、or、==、<、>、!=、<=,>=,in、not in、is、is not判断
(2)if … else 标签
格式:
{% if name_length|length > 6 %}
…
{% else %}
…
{% endif %}
(3).if…elif…else 标签
格式:
{% if name_length|length > 6 %}
…
{% elif age == 20 %}
…
{% else %}
…
{% endif %}

CBV流程

1.首先要编写自定义的视图类,必须继承View类。
2.然后在路由中配置URL调用视图类的as_View方法,也就是view类的as_view方法
3.as_view是一个闭包函数,返回的是view方法。
4.view方法先实例化类视图对象,然后给类视图对象赋值,最后调用dispatch方法
5.dispatch方法先判断该请求方式是否在它所有的方法中,然后通过反射getattr的请求方式获取指定的请求方法(也就是对应的函数),并执行相应的代码块

Django请求生命周期流程图

自定义过滤器,标签的步骤

  • 在settings中的INSTALLED_APPS添加当前app的名字,不然django无法找到自定义的过滤器或标签
  • 在文件夹app01中创建子文件templatetags
  • 在templatetags新建任意py文件,在该文件中自定义过滤器或标签
  • 自定义过滤器或标签必须重新启动django生效

以上是关于Django视图层模板层的主要内容,如果未能解决你的问题,请参考以下文章

肆拾陆 ---django视图层与模板层

django 之 视图层模板层

Django之路由层视图层模板层介绍

Django基础之视图(views)层模板层

django视图层与模板层

Django 路由层,视图层,模板层