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 正则式使用心得
May 07 Python
Python实现方便使用的级联进度信息实例
May 05 Python
Python 提取dict转换为xml/json/table并输出的实现代码
Aug 28 Python
浅谈python和C语言混编的几种方式(推荐)
Sep 27 Python
python使用 HTMLTestRunner.py生成测试报告
Oct 20 Python
Python批量查询关键词微信指数实例方法
Jun 27 Python
python按键按住不放持续响应的实例代码
Jul 17 Python
Python实现新型冠状病毒传播模型及预测代码实例
Feb 05 Python
python实现与redis交互操作详解
Apr 21 Python
Python经纬度坐标转换为距离及角度的实现
Nov 01 Python
python中使用 unittest.TestCase单元测试的用例详解
Aug 30 Python
用Python实现屏幕截图详解
Jan 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
PHP 输出缓存详解
2009/06/20 PHP
php对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
PHP实用小技巧之调用录像的方法
2019/12/05 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
javascript 事件查询综合 推荐收藏
2010/03/10 Javascript
js 自定义个性下拉选择框示例
2013/08/20 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
checkbox勾选判断代码分析
2014/06/11 Javascript
Jquery异步提交表单代码分享
2015/03/26 Javascript
jquery实现华丽的可折角广告代码
2015/09/02 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
vue-cli脚手架-bulid下的配置文件
2018/03/27 Javascript
手把手带你封装一个vue component第三方库
2019/02/14 Javascript
python 中的列表解析和生成表达式
2011/03/10 Python
python操作MySQL数据库具体方法
2013/10/28 Python
Django项目实战之用户头像上传与访问的示例
2018/04/21 Python
python web框架中实现原生分页
2019/09/08 Python
Python3.7黑帽编程之病毒篇(基础篇)
2020/02/04 Python
使用HTML5 Canvas为图片填充颜色和纹理的教程
2016/03/21 HTML / CSS
Viking比利时:购买办公用品
2019/10/30 全球购物
个人简历自我鉴定
2013/10/11 职场文书
员工培训心得体会
2013/12/30 职场文书
运动会广播稿50字
2014/01/26 职场文书
招聘与培训专员岗位职责
2014/01/30 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
节水倡议书范文
2014/04/15 职场文书
条幅标语大全
2014/06/20 职场文书
后勤管理员岗位职责
2014/08/27 职场文书
个人反四风对照检查材料思想汇报
2014/09/23 职场文书
城管执法人员个人对照检查材料思想汇报
2014/09/29 职场文书
以权谋私检举信范文
2015/03/02 职场文书
法院答辩状格式
2015/05/22 职场文书
歌咏比赛主持词
2015/06/29 职场文书
运动会通讯稿300字
2015/07/20 职场文书