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登录豆瓣并发帖的方法
Jul 08 Python
教你用python3根据关键词爬取百度百科的内容
Aug 18 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
Apr 19 Python
详解Python odoo中嵌入html简单的分页功能
May 29 Python
pandas的qcut()方法详解
Jul 06 Python
pytorch 在网络中添加可训练参数,修改预训练权重文件的方法
Aug 17 Python
python中property属性的介绍及其应用详解
Aug 29 Python
python实现QQ邮箱发送邮件
Mar 06 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
查看已安装tensorflow版本的方法示例
Apr 19 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
May 11 Python
浅谈Python协程
Jun 17 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
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
PHP memcache扩展的三种安装方法
2009/04/26 PHP
fleaphp rolesNameField bug解决方法
2011/04/23 PHP
php中++i 与 i++ 的区别
2012/08/08 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
jQuery选择id属性带有点符号元素的方法
2015/03/17 Javascript
JavaScript中的Promise使用详解
2015/06/24 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
Angular4表单验证代码详解
2017/09/03 Javascript
chorme 浏览器记住密码后input黄色背景处理方法(两种)
2017/11/22 Javascript
详解如何在项目中使用jest测试react native组件
2018/02/09 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
ant-design-vue 实现表格内部字段验证功能
2019/12/16 Javascript
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
[09:43]DOTA2每周TOP10 精彩击杀集锦vol.5
2014/06/25 DOTA
[40:57]TI4 循环赛第二日 iG vs EG
2014/07/11 DOTA
Python编程实现删除VC临时文件及Debug目录的方法
2017/03/22 Python
python tkinter界面居中显示的方法
2018/10/11 Python
Python过滤txt文件内重复内容的方法
2018/10/21 Python
Python 70行代码实现简单算式计算器解析
2019/08/30 Python
使用Python实现画一个中国地图
2019/11/23 Python
python GUI库图形界面开发之PyQt5树形结构控件QTreeWidget详细使用方法与实例
2020/03/02 Python
简单了解Java Netty Reactor三种线程模型
2020/04/26 Python
园林技术个人的自我评价
2014/02/15 职场文书
营销总监岗位职责范本
2014/02/26 职场文书
竞聘书模板
2014/03/31 职场文书
高考升学宴答谢词
2015/01/20 职场文书
2016关于军训的心得体会
2016/01/11 职场文书
大学生自我鉴定怎么写
2019/05/07 职场文书
详解python字符串驻留技术
2021/05/21 Python
深入理解go slice结构
2021/09/15 Golang
td 内容自动换行 table表格td设置宽度后文字太多自动换行
2022/12/24 HTML / CSS