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使用matplotlib实现基础绘图功能示例
Jul 03 Python
python3 拼接字符串的7种方法
Sep 12 Python
Python 实现交换矩阵的行示例
Jun 26 Python
详解Python对JSON中的特殊类型进行Encoder
Jul 15 Python
Python3将数据保存为txt文件的方法
Sep 12 Python
Numpy中对向量、矩阵的使用详解
Oct 29 Python
python机器学习实现决策树
Nov 11 Python
使用Python-OpenCV消除图像中孤立的小区域操作
Jul 05 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
Python extract及contains方法代码实例
Sep 11 Python
Python 3.9的到来到底是意味着什么
Oct 14 Python
Python使用tkinter制作在线翻译软件
Feb 22 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
利用 window_onload 实现select默认选择
2006/10/09 PHP
jQuery UI AutoComplete 自动完成使用小记
2010/08/21 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
js模仿php中strtotime()与date()函数实现方法
2015/08/11 Javascript
jQuery查找节点方法完整实例
2016/09/13 Javascript
使用JQuery选择HTML遍历函数的方法
2016/09/17 Javascript
Bootstrap源码解读模态弹出框(11)
2016/12/28 Javascript
jquery拼接ajax 的json和字符串拼接的方法
2017/03/11 Javascript
原生js实现吸顶效果
2017/03/13 Javascript
js学习心得_一个简单的动画库封装tween.js
2017/07/14 Javascript
js+html5实现侧滑页面效果
2017/07/15 Javascript
React-Native中禁用Navigator手势返回的示例代码
2017/09/09 Javascript
js定时器实现倒计时效果
2017/11/05 Javascript
Javacript中自定义的map.js  的方法
2017/11/26 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
jQuery实现checkbox全选、反选及删除等操作的方法详解
2019/08/02 jQuery
JavaScript HTML DOM 元素 (节点)新增,编辑,删除操作实例分析
2020/03/02 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
python使用rabbitmq实现网络爬虫示例
2014/02/20 Python
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
解决python 无法加载downsample模型的问题
2018/10/25 Python
代码详解django中数据库设置
2019/01/28 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
Python实现手绘图效果实例分享
2020/07/22 Python
Spy++的使用方法及下载教程
2021/01/29 Python
CSS3中线性颜色渐变的一些实现方法
2015/07/14 HTML / CSS
探讨HTML5移动开发的几大特性(必看)
2015/12/30 HTML / CSS
世界上最好的威士忌和烈性酒购买网站:The Whisky Exchange
2016/11/20 全球购物
如何利用find命令查找文件
2015/02/07 面试题
秋季运动会活动方案
2014/02/05 职场文书
九年级政治教学反思
2014/02/06 职场文书
租赁协议书
2015/01/27 职场文书
大学生入党自荐书
2015/03/05 职场文书
pycharm部署django项目到云服务器的详细流程
2021/06/29 Python
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
2022/02/12 Redis
SQL Server数据库的三种创建方法汇总
2023/05/08 MySQL