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模仿POST提交HTTP数据及使用Cookie值的方法
Nov 10 Python
Python实现简单状态框架的方法
Mar 19 Python
Python中输出ASCII大文字、艺术字、字符字小技巧
Apr 28 Python
Python中属性和描述符的正确使用
Aug 23 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
OpenCV HSV颜色识别及HSV基本颜色分量范围
Mar 22 Python
使用Python的Turtle绘制哆啦A梦实例
Nov 21 Python
Python 批量读取文件中指定字符的实现
Mar 06 Python
用python计算文件的MD5值
Dec 23 Python
python3实现常见的排序算法(示例代码)
Jul 04 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 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
windows下PHP APACHE MYSQ完整配置
2007/01/02 PHP
解决FastCGI 进程超过了配置的活动超时时限的问题
2013/07/03 PHP
php通过curl添加cookie伪造登陆抓取数据的方法
2016/04/02 PHP
thinkPHP5.0框架模块设计详解
2017/03/18 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
web开发人员学习jQuery的6大理由及jQuery的优势介绍
2013/01/03 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
js 判断图片是否加载完以及实现图片的预下载
2014/08/14 Javascript
JavaScript实现的多个图片广告交替显示效果代码
2015/09/04 Javascript
JS实现浏览器状态栏显示时间的方法
2015/10/27 Javascript
简要了解jQuery移动web开发的响应式布局设计
2015/12/04 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
js 实现数值的千分位及保存小数方法(推荐)
2016/08/01 Javascript
JavaScript的数据类型转换原则(干货)
2018/03/15 Javascript
微信小程序实现留言板(Storage)
2018/11/02 Javascript
JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【凹多边形的分离轴检测算法】
2018/12/13 Javascript
小程序开发之模态框组件封装
2020/04/23 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
python通过exifread模块获得图片exif信息的方法
2015/03/16 Python
Python实现自动登录百度空间的方法
2017/06/10 Python
python编程线性回归代码示例
2017/12/07 Python
python 在指定范围内随机生成不重复的n个数实例
2019/01/28 Python
python每天定时运行某程序代码
2019/08/16 Python
python super函数使用方法详解
2020/02/14 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
编程输出如下图形
2013/11/24 面试题
小学班主任寄语大全
2014/04/04 职场文书
石油工程专业毕业生求职信
2014/04/13 职场文书
高三语文复习计划
2015/01/19 职场文书
Python OpenCV之常用滤波器使用详解
2022/04/07 Python
Redis sentinel哨兵集群的实现步骤
2022/07/15 Redis