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的Scrapy爬虫框架使用代理进行采集的方法
Feb 18 Python
详解python3实现的web端json通信协议
Dec 29 Python
python实现员工管理系统
Jan 11 Python
python库lxml在linux和WIN系统下的安装
Jun 24 Python
在pycharm中使用git版本管理以及同步github的方法
Jan 16 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
Python实现直方图均衡基本原理解析
Aug 08 Python
python 3.6.7实现端口扫描器
Sep 04 Python
使用python获取邮箱邮件的设置方法
Sep 20 Python
Pytest参数化parametrize使用代码实例
Feb 22 Python
详解python内置模块urllib
Sep 09 Python
解决Pytorch修改预训练模型时遇到key不匹配的情况
Jun 05 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_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
php实现约瑟夫问题的方法小结
2015/03/23 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
Laravel如何使用数据库事务及捕获事务失败后的异常详解
2017/10/23 PHP
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
来自国外的页面JavaScript文件优化
2010/12/08 Javascript
AngularJS + Node.js + MongoDB开发的基于高德地图位置的通讯录
2015/01/02 Javascript
jQuery匹配文档链接并添加class的方法
2015/06/26 Javascript
JavaScript阻止回车提交表单的方法
2015/12/30 Javascript
js调用webservice构造SOAP进行身份验证
2016/04/27 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
2017/07/13 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
重置Redux的状态数据的方法实现
2019/11/18 Javascript
深入理解Antd-Select组件的用法
2020/02/25 Javascript
Node.js中出现未捕获异常的处理方法
2020/06/29 Javascript
Vue中登录验证成功后保存token,并每次请求携带并验证token操作
2020/09/08 Javascript
Python实现两个list对应元素相减操作示例
2017/06/09 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
获取python的list中含有重复值的index方法
2018/06/27 Python
Python实现八皇后问题示例代码
2018/12/09 Python
python opencv实现信用卡的数字识别
2020/01/12 Python
pyecharts动态轨迹图的实现示例
2020/04/17 Python
Python 整行读取文本方法并去掉readlines换行\n操作
2020/09/03 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
美国最大的团购网站:Groupon
2016/07/23 全球购物
一套软件开发工程师笔试题
2015/05/18 面试题
行政助理求职自荐信
2013/10/26 职场文书
项目资料员岗位职责
2013/12/10 职场文书
法定代表人资格证明书
2015/06/18 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python
python多线程方法详解
2022/01/18 Python
使用Python解决图表与画布的间距问题
2022/04/11 Python