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编写一个在Linux下实现截图分享的脚本的教程
Apr 24 Python
使用Python来开发Markdown脚本扩展的实例分享
Mar 04 Python
Python处理文本文件中控制字符的方法
Feb 07 Python
深入浅析python with语句简介
Apr 11 Python
python实现NB-IoT模块远程控制
Jun 20 Python
python实现飞机大战
Sep 11 Python
Python3中在Anaconda环境下安装basemap包
Oct 21 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
Jun 17 Python
python集合常见运算案例解析
Oct 17 Python
Python requests设置代理的方法步骤
Feb 23 Python
详解pycharm自动import所需的库的操作方法
Nov 30 Python
Python OpenCV超详细讲解基本功能
Apr 02 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中的extract的作用分析
2008/04/09 PHP
PHP 函数语法介绍一
2009/06/14 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
PHP基于GD库的缩略图生成代码(支持jpg,gif,png格式)
2014/06/19 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
JavaScript Base64编码和解码,实现URL参数传递。
2006/09/18 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
js判断登录与否并确定跳转页面的方法
2015/01/30 Javascript
对Web开发中前端框架与前端类库的一些思考
2015/03/27 Javascript
jQuery实现手机号码输入提示功能实例
2015/04/30 Javascript
[原创]jQuery常用的4种加载方式分析
2016/07/25 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
详解在Angular项目中添加插件ng-bootstrap
2017/07/04 Javascript
React中常见的动画实现的几种方式
2018/01/10 Javascript
详解Node 定时器
2018/02/26 Javascript
vue.js给动态绑定的radio列表做批量编辑的方法
2018/02/28 Javascript
jQuery实现动态加载select下拉列表项功能示例
2018/05/31 jQuery
基于element-ui组件手动实现单选和上传功能
2018/12/06 Javascript
关于引入vue.js 文件的知识点总结
2020/01/28 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
Python 爬虫学习笔记之正则表达式
2016/09/21 Python
Python打印“菱形”星号代码方法
2018/02/05 Python
python实现批量修改服务器密码的方法
2019/08/13 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
HTML5 History API 实现无刷新跳转
2016/01/11 HTML / CSS
Boda Skins皮衣官网:奢侈皮夹克,全球配送
2016/12/15 全球购物
药物学专业学生的自我评价
2013/10/27 职场文书
网络教育自我鉴定
2013/11/01 职场文书
校园报刊亭的创业计划书
2014/01/02 职场文书
保密工作实施方案
2014/02/24 职场文书
岗位廉洁从业承诺书
2014/03/28 职场文书
给老婆的检讨书
2015/01/27 职场文书
外贸采购员岗位职责
2015/04/03 职场文书
2016大学迎新晚会开场白
2015/11/24 职场文书
MySQL索引篇之千万级数据实战测试
2021/04/05 MySQL
解决使用了nginx获取IP地址都是127.0.0.1 的问题
2021/09/25 Servers