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使用urllib模块开发的多线程豆瓣小站mp3下载器
Jan 16 Python
Python语言的12个基础知识点小结
Jul 10 Python
Python 实现 贪吃蛇大作战 代码分享
Sep 07 Python
Python实现自定义顺序、排列写入数据到Excel的方法
Apr 23 Python
基于MTCNN/TensorFlow实现人脸检测
May 24 Python
TensorFlow 模型载入方法汇总(小结)
Jun 19 Python
Python使用cx_Freeze库生成msi格式安装文件的方法
Jul 10 Python
Python函数any()和all()的用法及区别介绍
Sep 14 Python
Python3 修改默认环境的方法
Feb 16 Python
Python GUI编程完整示例
Apr 04 Python
python脚本第一行如何写
Aug 30 Python
Python Pygame实现俄罗斯方块
Feb 19 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版
2006/10/09 PHP
一个自定义位数的php多用户计数器代码
2007/03/11 PHP
JS中encodeURIComponent函数用php解码的代码
2012/03/01 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
CI框架中类的自动加载问题分析
2016/11/21 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
Using the TextRange Object
2006/10/14 Javascript
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
javascript setTimeout和setInterval计时的区别详解
2013/06/21 Javascript
Javascript中Event属性搜集整理
2013/09/17 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
JS 删除字符串最后一个字符的实现代码
2014/02/20 Javascript
JavaScript中的toDateString()方法使用详解
2015/06/12 Javascript
jQuery实现的给图片点赞+1动画效果(附在线演示及demo源码下载)
2015/12/31 Javascript
JQuery日历插件My97DatePicker日期范围限制
2016/01/20 Javascript
AngularJS  $modal弹出框实例代码
2016/08/24 Javascript
node.js中的事件处理机制详解
2016/11/26 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
Vuex的actions属性的具体使用
2019/04/14 Javascript
功能完善的小程序日历组件的实现
2020/03/31 Javascript
vue动态加载SVG文件并修改节点数据的操作代码
2020/08/17 Javascript
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
python文件和目录操作函数小结
2014/07/11 Python
总结python爬虫抓站的实用技巧
2016/08/09 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
Selenium定位元素操作示例
2018/08/10 Python
Python调用C/C++的方法解析
2020/08/05 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
MCAKE蛋糕官方网站:一直都是巴黎的味道
2018/02/06 全球购物
英语专业个人求职自荐信
2013/09/21 职场文书
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
PyTorch的Debug指南
2021/05/07 Python