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 相关文章推荐
pycharm 使用心得(二)设置字体大小
Jun 05 Python
python编写网页爬虫脚本并实现APScheduler调度
Jul 28 Python
Python中使用SAX解析xml实例
Nov 21 Python
Python正则替换字符串函数re.sub用法示例
Jan 19 Python
详解python异步编程之asyncio(百万并发)
Jul 07 Python
Django跨域请求CSRF的方法示例
Nov 11 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
用Python将结果保存为xlsx的方法
Jan 28 Python
Django REST framework 如何实现内置访问频率控制
Jul 23 Python
PyTorch 对应点相乘、矩阵相乘实例
Dec 27 Python
使用Python内置模块与函数进行不同进制的数的转换
Apr 26 Python
Python3之乱码\xe6\x97\xa0\xe6\xb3\x95处理方式
May 11 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下清空字符串中的HTML标签的代码
2010/09/06 PHP
php报表之jpgraph柱状图实例代码
2011/08/22 PHP
在PHP模板引擎smarty生成随机数的方法和math函数详解
2014/04/24 PHP
PHP三种方式实现链式操作详解
2017/01/21 PHP
PHP获取数组中单列值的方法
2017/06/10 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
Javascript里使用Dom操作Xml
2007/01/22 Javascript
JavaScript入门教程(3) js面向对象
2009/01/31 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
jQuery Form 页面表单提交的小例子
2013/11/15 Javascript
jquery+html5时钟特效代码分享(可设置闹钟并且语音提醒)
2020/03/30 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
AngularJS 模块化详解及实例代码
2016/09/14 Javascript
阿里云ecs服务器中安装部署node.js的步骤
2016/10/08 Javascript
jQuery UI 实例讲解 - 日期选择器(Datepicker)
2017/09/18 jQuery
JS原型继承四步曲及原型继承图一览
2017/11/28 Javascript
JavaScript递归函数定义与用法实例分析
2019/01/24 Javascript
element form 校验数组每一项实例代码
2019/10/10 Javascript
vue prop传值类型检验方式
2020/07/30 Javascript
[02:37]2018DOTA2亚洲邀请赛赛前采访-EG篇
2018/04/03 DOTA
python网络编程学习笔记(四):域名系统
2014/06/09 Python
Django中模型Model添加JSON类型字段的方法
2015/06/17 Python
Python的Django框架中的Context使用
2015/07/15 Python
Python编程实现二叉树及七种遍历方法详解
2017/06/02 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
python基于物品协同过滤算法实现代码
2018/05/31 Python
Python实现查找数组中任意第k大的数字算法示例
2019/01/23 Python
Pycharm新手教程(只需要看这篇就够了)
2019/06/18 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
Myprotein瑞典官方网站:畅销欧洲英国运动营养品牌
2018/01/22 全球购物
电大毕业生自我鉴定
2013/11/10 职场文书
高中生的自我鉴定范文
2014/01/24 职场文书
优秀班集体事迹材料
2014/12/25 职场文书
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python
Python+Selenium自动化环境搭建与操作基础详解
2022/03/13 Python