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 序列化 pickle/cPickle模块使用介绍
Nov 30 Python
Python实现爬取逐浪小说的方法
Jul 07 Python
Python部署web开发程序的几种方法
May 05 Python
Pycharm远程调试openstack的方法
Nov 21 Python
python实现快速排序的示例(二分法思想)
Mar 12 Python
python模块之subprocess模块级方法的使用
Mar 26 Python
Python中如何添加自定义模块
Jun 09 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
Jul 03 Python
Python编写单元测试代码实例
Sep 10 Python
利用python+ffmpeg合并B站视频及格式转换的实例代码
Nov 24 Python
Python项目打包成二进制的方法
Dec 30 Python
写一个Python脚本下载哔哩哔哩舞蹈区的所有视频
May 31 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
example2.php
2006/10/09 PHP
PHP 身份证号验证函数
2009/05/07 PHP
PHP实现伪静态方法汇总
2016/01/13 PHP
简单介绍PHP非阻塞模式
2016/03/03 PHP
PHP+fiddler抓包采集微信文章阅读数点赞数的思路详解
2019/12/20 PHP
最佳6款用于移动网站开发的jQuery 图片滑块插件小结
2012/07/20 Javascript
父节点获取子节点的字符串示例代码
2014/02/26 Javascript
javascript巧用eval函数组装表单输入项为json对象的方法
2015/11/25 Javascript
轻松学习jQuery插件EasyUI EasyUI实现树形网络基本操作(2)
2015/11/30 Javascript
JS代码实现根据时间变换页面背景效果
2016/06/16 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
JQuery 设置checkbox值二次无效的解决方法
2016/07/22 Javascript
JS实现动态增加和删除li标签行的实例代码
2016/10/16 Javascript
AngularJS ng-template寄宿方式用法分析
2016/11/07 Javascript
babel7.x和webpack4.x配置vue项目的方法步骤
2019/05/12 Javascript
JS实现简易留言板(节点操作)
2020/03/16 Javascript
js实现百度登录窗口拖拽效果
2020/03/19 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
Python爬虫常用库的安装及其环境配置
2018/09/19 Python
pandas删除指定行详解
2019/04/04 Python
Python实现的登录验证系统完整案例【基于搭建的MVC框架】
2019/04/12 Python
我们为什么要减少Python中循环的使用
2019/07/10 Python
利用python实现.dcm格式图像转为.jpg格式
2020/01/13 Python
python中resample函数实现重采样和降采样代码
2020/02/25 Python
Python虚拟环境的创建和包下载过程分析
2020/06/19 Python
英语翻译系毕业生求职信
2013/09/29 职场文书
建筑学推荐信
2013/11/03 职场文书
学生周末回家住宿长期请假条
2014/02/15 职场文书
保险公司早会主持词
2014/03/22 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
写给领导的感谢信
2015/01/22 职场文书
2015年母亲节活动总结
2015/02/10 职场文书
会计岗位工作总结
2015/08/12 职场文书
2016年助残日旅游活动总结
2016/04/01 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python
速龙x4-860k处理器相当于i几
2022/04/20 数码科技