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获取apk文件URL地址实例
Nov 01 Python
python数据结构之二叉树的遍历实例
Apr 29 Python
使用Python读写文本文件及编写简单的文本编辑器
Mar 11 Python
Python 迭代器工具包【推荐】
May 06 Python
flask使用session保存登录状态及拦截未登录请求代码
Jan 19 Python
解决python中无法自动补全代码的问题
Dec 04 Python
Python数据可视化库seaborn的使用总结
Jan 15 Python
matplotlib.pyplot绘图显示控制方法
Jan 15 Python
python将视频转换为全字符视频
Apr 26 Python
python中通过selenium简单操作及元素定位知识点总结
Sep 10 Python
Python字典深浅拷贝与循环方式方法详解
Feb 09 Python
python 读取.nii格式图像实例
Jul 01 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动态生成版权所有信息的方法
2015/03/24 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
Yii2第三方类库插件Imagine的安装和使用
2017/07/06 PHP
Laravel5.1 框架数据库操作DB运行原生SQL的方法分析
2020/01/07 PHP
php封装的page分页类完整实例代码
2020/02/01 PHP
实现超用户体验 table排序javascript实现代码
2009/06/22 Javascript
JavaScript类和继承 prototype属性
2010/09/03 Javascript
div层的移动及性能优化
2010/11/16 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
2017/12/19 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
js实现指定时间倒计时效果
2019/08/26 Javascript
vue自定义组件实现双向绑定
2021/01/13 Vue.js
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
Python获取脚本所在目录的正确方法
2014/04/15 Python
python实现根据图标提取分类应用程序实例
2014/09/28 Python
python中的lambda表达式用法详解
2016/06/22 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
1 行 Python 代码快速实现 FTP 服务器
2018/01/25 Python
selenium+python实现自动化登录的方法
2018/09/04 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
详解python 中in 的 用法
2019/12/12 Python
python名片管理系统开发
2020/06/18 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
canvas绘制圆角头像的实现方法
2019/01/17 HTML / CSS
澳大利亚领先的男装零售连锁店:Lowes
2020/08/07 全球购物
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
2014年小学教导处工作总结
2014/12/19 职场文书
钢铁是怎样炼成的读书笔记
2015/06/29 职场文书
法制主题班会教案
2015/08/13 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
关于Spring配置文件加载方式变化引发的异常详解
2022/01/18 Java/Android
Vue.js中v-bind指令的用法介绍
2022/03/13 Vue.js