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 相关文章推荐
Mac下Supervisor进程监控管理工具的安装与配置
Dec 16 Python
开始着手第一个Django项目
Jul 15 Python
Python绘制七段数码管实例代码
Dec 20 Python
1 行 Python 代码快速实现 FTP 服务器
Jan 25 Python
python控制windows剪贴板,向剪贴板中写入图片的实例
May 31 Python
python 生成图形验证码的方法示例
Nov 11 Python
PyQT实现菜单中的复制,全选和清空的功能的方法
Jun 17 Python
通过python改变图片特定区域的颜色详解
Jul 15 Python
python中sort和sorted排序的实例方法
Aug 26 Python
Python大数据之从网页上爬取数据的方法详解
Nov 16 Python
Python如何读取文件中图片格式
Jan 13 Python
django 解决自定义序列化返回处理数据为null的问题
May 20 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
ThinkPHP使用Smarty第三方插件方法小结
2016/03/19 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
php 从一个数组中随机的取出若干个不同的数实例
2016/12/31 PHP
PHP实现的解汉诺塔问题算法示例
2018/08/06 PHP
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
js制作的鼠标悬浮时产生的下拉框效果
2012/10/27 Javascript
js单例模式的两种方案
2013/10/22 Javascript
js转换对象为xml
2017/02/17 Javascript
JS实现含有中文字符串的友好截取功能分析
2017/03/13 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
vue.js+element-ui动态配置菜单的实例
2018/09/07 Javascript
vue实现一个炫酷的日历组件
2018/10/08 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
微信小程序利用for循环解决内容变更问题
2020/03/05 Javascript
[00:53]2015国际邀请赛 中国区预选赛一触即发
2015/05/14 DOTA
Python 代码性能优化技巧分享
2012/08/07 Python
python笔记(2)
2012/10/24 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
Python如何使用函数做字典的值
2019/11/30 Python
python 如何快速复制序列
2020/09/07 Python
Python 使用SFTP和FTP实现对服务器的文件下载功能
2020/12/17 Python
Python中的流程控制详解
2021/02/18 Python
The North Face北面德国官网:美国著名户外品牌
2018/12/12 全球购物
德国的各种媒体在线商店:Thalia.de(书籍、电子书、玩具等)
2020/10/08 全球购物
师范应届毕业生自荐信
2013/11/18 职场文书
社区学雷锋活动策划方案
2014/01/30 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
上课睡觉万能检讨书
2015/02/17 职场文书
红色故事汇观后感
2015/06/18 职场文书
2016年基层党支部书记公开承诺书
2016/03/25 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
JavaScript中关于预编译、作用域链和闭包的理解
2021/03/31 Javascript
Canvas绘制像素风图片的示例代码
2021/09/25 HTML / CSS
Mybatis-Plus进阶分页与乐观锁插件及通用枚举和多数据源详解
2022/03/21 Java/Android