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标准库之itertools库的使用方法
Sep 07 Python
Python空间数据处理之GDAL读写遥感图像
Aug 01 Python
Django项目之Elasticsearch搜索引擎的实例
Aug 21 Python
500行代码使用python写个微信小游戏飞机大战游戏
Oct 16 Python
python实现LRU热点缓存及原理
Oct 29 Python
Python 读取有公式cell的结果内容实例方法
Feb 17 Python
Python yield生成器和return对比代码实例
Apr 20 Python
python 追踪except信息方式
Apr 25 Python
解决pytorch 交叉熵损失输出为负数的问题
Jul 07 Python
浅析Python 字符编码与文件处理
Sep 24 Python
Python中使用Lambda函数的5种用法
Apr 01 Python
Python pandas之求和运算和非空值个数统计
Aug 07 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
Adodb的十个实例(清晰版)
2006/12/31 PHP
dedecms 批量提取第一张图片最为缩略图的代码(文章+软件)
2009/10/29 PHP
Zend Framework 2.0事件管理器(The EventManager)入门教程
2014/08/11 PHP
Yii框架组件和事件行为管理详解
2016/05/20 PHP
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
javascript中[]和{}对象使用介绍
2013/03/20 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
2014/03/12 Javascript
我的Node.js学习之路(三)--node.js作用、回调、同步和异步代码 以及事件循环
2014/07/06 Javascript
jquery实现可拖拽弹出层特效
2015/01/04 Javascript
jquery实现邮箱自动填充提示功能
2015/11/17 Javascript
JS如何设置cookie有效期为当天24点并弹出欢迎登陆界面
2016/08/04 Javascript
HTML页面,测试JS对C函数的调用简单实例
2016/08/09 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
基于EasyUI的基础之上实现树形功能菜单
2017/06/28 Javascript
laravel5.3 vue 实现收藏夹功能实例详解
2018/01/21 Javascript
vue实例的选项总结
2020/06/09 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
python统计文本字符串里单词出现频率的方法
2015/05/26 Python
Python3中关于cookie的创建与保存
2018/10/21 Python
Python文件常见操作实例分析【读写、遍历】
2018/12/10 Python
python实现的生成word文档功能示例
2019/08/23 Python
python实现网站微信登录的示例代码
2019/09/18 Python
tensorflow dataset.shuffle、dataset.batch、dataset.repeat顺序区别详解
2020/06/03 Python
python爬虫用scrapy获取影片的实例分析
2020/11/23 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
大专应届生个人简历的自我评价
2013/10/15 职场文书
大学生工作推荐信范文
2013/12/02 职场文书
十佳美德少年事迹材料
2014/02/05 职场文书
学校对教师的评语
2014/04/28 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
副校长个人对照检查材料思想汇报
2014/10/04 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
导游词之安徽九华山
2019/09/18 职场文书
台式电脑蓝牙适配器怎么安装?台式电脑蓝牙适配器安装教程
2022/04/08 数码科技
Three.js实现雪糕地球的使用示例详解
2022/07/07 Javascript