Django框架基础模板标签与filter使用方法详解


Posted in Python onJuly 23, 2019

本文实例讲述了Django框架基础模板标签与filter使用方法。分享给大家供大家参考,具体如下:

一、基本的模板语言

1、变量

{{ }}

1.1、进入Django shell 环境

python manage.py shell

1.2、Context、Template 模块的基本使用

from django.template import Context,Template
t = Template('My name id {{ name }}')
c = Context({'name':'Stephane'})
t.render(c)

1.3、views.py 文件

def index(request):
  list = ['小明','小花','小包']
  dict = {'age':14,'user':'小高'}
  return render(request,'index.html',{'list':list,'dict':dict})

1.4、index.html 文件

<div>
  <!-- 获得列表第一个名字:“小明” -->
  {{ list.0 }}
  <!-- 获得字典中的 age 项 -->
  {{ dict.age }}
  <!-- 过滤 flite 的使用 -->
  {{ dict.age | 过滤条件 }}
</div>

2、逻辑语法

{%  %}

2.1、循环与判断

{% for   ...  in  ...  %}

{% endfor %}

{% if  %}

{% else %}

{% endif %}

{% url '网页路径' %} 指定路径

<form>

{% csrf_token %} 去除跨域csrf验证

</form>

{% load 标签库 %} 加载任意标签库

3、模板中的逻辑操作:

3.1、 ==, !=, >=, <=, >, <  这些比较都可以在模板中使用(注意:比较符号前后必须有至少一个空格!)

{% if var >= 90 %}
成绩优秀,学得不错
{% elif var >= 80 %}
成绩良好
{% elif var >= 70 %}
成绩一般
{% elif var >= 60 %}
需要努力
{% else %}
不及格啊,大哥!
{% endif %}

3.2、and, or, not, in, not in , is , is not 也可以在模板中使用

{% if num <= 100 and num >= 0 %}
num在0到100之间
{% else %}
数值不在范围之内!
{% endif %}

4、注释

{# value #}

二、Django的模板方法

1、filters 内置语法

基本语法:{{ value|filter_name:参数 }} value:变量名 ; filter_name:Django内置或者自定义filter方法; 参数:处理的值

3.1、{{ value|default:参数 }} 如果value没有传值,替换default设置的参数。

3.2、{{ value|default_if_none:参数 }} 如果value为none,替换default设置的参数。

3.2、{{ value|length }} 显示value的长度

3.3、{{ value|filesizeformat }} 将value格式化一个可以识别的大小(例子:1.5k,5M等)

3.4、{{ value|slice:" 2:1" }} 对value进行切片(支持负数)

3.5、{{ value|date:"Y:m:d H:i:s"}} 格式话时间

3.6、{{ value|safe }}  直接解析为可执行的html代码

3.7、{{ value|truncatechars:30 }} 对value进行截取,只显示30个字符,用“...”代替多余的部分

3.8、{{ value|add:10 }} 做加法运算

3.9、{{ value|capfirst }} 首字母大写

3.9、{{ value|cut:'a' }} 从字符串中移除指定的字符

2、自定义filter

2.1、在APP项目中新建 templatetags 模块 ,在.py文件中编写自定义模块

# 自定义filter的基本语法
form Django import template # 引用Django中的模块
register = template.Library() # 实例化一个模板对象
# 将自定义的 filter 注册到程序中
@register.filter
'''
  @register.filter(name = 'fleter_name') 这个装饰器把自定义的filter注册到程序中,
  让其可以使用自定义的 filter 方法; reg是 ‘|' 前面的变量 reg2是方法后面的参数。
'''
@register.filter(name = 'add')
def add(reg):
  return '{}'.format(reg)
@register.filter(name = 'add_str')
def add_str(reg,reg2):
  return '{} {}'.format(reg,reg2)

2.2、html文件的使用方法

<!-- 导入自定义的filter方法 -->
{% load filter %}
{{ value|add }}
{{ value|add_str:'123'}}
{% if num|fliter:参数 %}
  内容
{% endif %}

出现这个错误需要手动重启python程序

Django框架基础模板标签与filter使用方法详解

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

Python 相关文章推荐
Python利用pyHook实现监听用户鼠标与键盘事件
Aug 21 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
May 06 Python
Python实现给文件添加内容及得到文件信息的方法
May 28 Python
Python简单实现Base64编码和解码的方法
Apr 29 Python
Python 通过URL打开图片实例详解
Jun 01 Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 Python
python删除字符串中指定字符的方法
Aug 13 Python
Python二维码生成识别实例详解
Jul 16 Python
python数字类型math库原理解析
Mar 02 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
May 22 Python
Python3 requests模块如何模仿浏览器及代理
Jun 15 Python
结束运行python的方法
Jun 16 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
Jul 23 #Python
Python中拆分字符串的操作方法
Jul 23 #Python
python实现电子书翻页小程序
Jul 23 #Python
Python 正则表达式 re.match/re.search/re.sub的使用解析
Jul 22 #Python
python使用原始套接字发送二层包(链路层帧)的方法
Jul 22 #Python
微信公众号token验证失败解决方案
Jul 22 #Python
django 消息框架 message使用详解
Jul 22 #Python
You might like
PHP的类 功能齐全的发送邮件类
2006/10/09 PHP
windows下配置php5.5开发环境及开发扩展
2014/12/25 PHP
PHP版微信公众平台红包API
2015/04/02 PHP
PHP+JQuery+Ajax实现分页方法详解
2016/08/06 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
tp5.1 实现setInc字段自动加1
2019/10/18 PHP
javascript 有用的脚本函数
2009/05/07 Javascript
javascript 动态加载 css 方法总结
2009/07/11 Javascript
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
js创建子窗口并且回传值示例代码
2013/07/02 Javascript
JS高级调试技巧:捕获和分析 JavaScript Error详解
2014/03/16 Javascript
jQuery中的siblings()是什么意思(推荐)
2016/12/29 Javascript
js循环map 获取所有的key和value的实现代码(json)
2018/05/09 Javascript
使用JavaScript生成罗马字符的实例代码
2018/06/08 Javascript
解决vue点击控制单个样式的问题
2018/09/05 Javascript
详解如何用VUE写一个多用模态框组件模版
2018/09/27 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
2019/09/09 Javascript
简单了解Vue computed属性及watch区别
2020/07/10 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
python交换两个变量的值方法
2019/01/12 Python
在Python中字符串、列表、元组、字典之间的相互转换
2019/11/15 Python
python实现将json多行数据传入到mysql中使用
2019/12/31 Python
浅谈Python3中print函数的换行
2020/08/05 Python
自我评价的写作规则
2014/01/06 职场文书
服务承诺书范文
2014/05/19 职场文书
生日庆典策划方案
2014/06/02 职场文书
团日活动总结怎么写
2014/06/25 职场文书
2014年小班保育员工作总结
2014/12/23 职场文书
英语通知范文
2015/04/22 职场文书
小马王观后感
2015/06/11 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
Golang二维数组的使用方式
2021/05/28 Golang
MySQL系列之十 MySQL事务隔离实现并发控制
2021/07/02 MySQL