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解析文件示例
Jan 23 Python
浅谈Python单向链表的实现
Dec 24 Python
Python简单连接MongoDB数据库的方法
Mar 15 Python
Python学习教程之常用的内置函数大全
Jul 14 Python
pandas数据预处理之dataframe的groupby操作方法
Apr 13 Python
Python3 执行系统命令并获取实时回显功能
Jul 09 Python
Django框架中间件定义与使用方法案例分析
Nov 28 Python
Python: tkinter窗口屏幕居中,设置窗口最大,最小尺寸实例
Mar 04 Python
使用python接受tgam的脑波数据实例
Apr 09 Python
Python模块zipfile原理及使用方法详解
Aug 04 Python
一文带你了解Python 四种常见基础爬虫方法介绍
Dec 04 Python
通过python-pptx模块操作ppt文件的方法
Dec 26 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
全国FM电台频率大全 - 10 江苏省
2020/03/11 无线电
php处理json格式数据经典案例总结
2016/05/19 PHP
PHP中的正则表达式实例详解
2017/04/25 PHP
jquery插件 cluetip 关键词注释
2010/01/12 Javascript
JavaScript高级程序设计(第3版)学习笔记7 js函数(上)
2012/10/11 Javascript
node.js中的fs.readlinkSync方法使用说明
2014/12/17 Javascript
jQuery原生的动画效果
2015/07/10 Javascript
vue.js表格分页示例
2016/10/18 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
20170918 前端开发周报之JS前端开发必看
2017/09/18 Javascript
如何利用vue+vue-router+elementUI实现简易通讯录
2019/05/13 Javascript
Vue 通过公共字段,拼接两个对象数组的实例
2019/11/07 Javascript
js滚轮事件 js自定义滚动条的实现
2020/01/18 Javascript
javascript利用键盘控制小方块的移动
2020/04/20 Javascript
vue-i18n实现中英文切换的方法
2020/07/06 Javascript
JS实现百度搜索框
2021/02/25 Javascript
python使用cookie库操保存cookie详解
2014/03/03 Python
Python中zfill()方法的使用教程
2015/05/20 Python
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
python topN 取最大的N个数或最小的N个数方法
2018/06/04 Python
ubuntu16.04制作vim和python3的开发环境
2018/09/23 Python
浅谈Python接口对json串的处理方法
2018/12/19 Python
python实现年会抽奖程序
2019/01/22 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
CSS3实现多重边框的方法总结
2016/05/31 HTML / CSS
巴西体育用品商店:Lojão dos Esportes
2018/07/21 全球购物
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
三好学生自我鉴定
2013/12/17 职场文书
业务部主管岗位职责
2014/01/29 职场文书
摄影专业毕业生求职信
2014/03/13 职场文书
2014年护士长工作总结
2014/11/11 职场文书
关于上班时间调整的通知
2015/04/23 职场文书
python 下划线的多种应用场景总结
2021/05/12 Python
Python基于百度AI实现抓取表情包
2021/06/27 Python
源码分析Redis中 set 和 sorted set 的使用方法
2022/03/22 Redis