博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dtl模板语言,自定义filter和tag
阅读量:5093 次
发布时间:2019-06-13

本文共 1576 字,大约阅读时间需要 5 分钟。

1,变量在视图函数中通过 return render(request,‘.html’,{'num':num})传入   可以直接引入local()

在前端通过.与法进行访问  可以将全部类型传入,包括函数返回值,类的__str__,函数不带参数

2.dtl模板语言的filter和tag:

常用的filter      |add:2  |default:0  |data:'Y-m-d'    <a>{

{ name|truncatechars:0 }}</a>      <a>{
{ dict1.usr|slice:'0:1'}}</a>  -- 注:过滤器可以串联操作,可以拥有0个或1个参数

-- 增加 add:num

-- 字符串长度 length
-- 默认值 default:'默认值' # 变量不存在或为空
-- 全大写 upper
-- 全小写 lower
-- 切片 slice:'0:-1'
-- 将数字转换为文件大小 filesizeformat
-- 字符串隐藏 truncatechars:13 # 只显示10个字符,后置字符都用...来替代
-- 时间 date:'Y-m-d'
-- 转换原意 safe

tag   可用于反向解析   用于{%now:'Y-m-d'  'h-i-s'%}     起别名{% with ‘hshs' as nu’%}   {%end   with%}  -- Django CSRF认证   {% csrf_token %}

if 和 for  用法

 

`python

'''
语法:
{% if 条件1 %}
结论1
{% elif 条件2 %}
结论2
{% else %}
结论n
{% endif %}

注:

1. if的条件可以添加filter
2. 可以嵌套
'''
```

## 七、迭代器

```python

'''
{% for foo in iterate %}
{
{ forloop }}
{% empty %}
可迭代对象为空
{% endfor %}

注:

1. iterate为可迭代对象
2. iterate可以添加filter
3. forloop变量为存放迭代信息的字典,父级forloop字典,开始索引从0编号或1编号,倒序索引从0编号或1编号,是否是第一次或最后一次循环
4. empty分支会在可迭代对象不存在或空时执行

## 八、自定义过滤器与标签

```python

'''
步骤:
1. 在注册的app下创建templatetags包
2. 在模板中自定义模块py文件,如:owen_tags.py
3. 要在使用自定义filter与tag的模板页面中加载自定义模块py文件,案例:{% load owen_tags %}

4. 自定义filter语法

from django.template import Library
register = Library()
@register.filter(name='jump')
def owen_jump(value, arg):
try:
return value * int(arg)
except (ValueError, TypeError):
return ''
5. 自定义tag语法
@register.simple_tag(name='add_two')
def owen_add(arg1, arg2):
try:
return int(arg1) + int(arg2)
except (ValueError, TypeError):
try:
return arg1 + arg2
except Exception:
return ''

转载于:https://www.cnblogs.com/wrqysrt/p/10457229.html

你可能感兴趣的文章
php socket通信(tcp/udp)
查看>>
MongoDB安装配置(Windows)
查看>>
常用的事件
查看>>
Adam 算法
查看>>
WebService—规范介绍和几种实现WebService的框架介绍
查看>>
周鸿祎:做产品体验先把自己切换到二傻子模式
查看>>
mips32和x86下的大小端模式判定
查看>>
[js]js设计模式-构造函数模式
查看>>
npm install 报node-sass错误
查看>>
软件常用问题
查看>>
上传文件(ajax结合form表单)
查看>>
selenium python grid
查看>>
nc(NetCat)命令
查看>>
CNN卷积神经网络-tensorflow
查看>>
JS性能优化
查看>>
P3930 SAC E#1 - 一道大水题 Knight
查看>>
Linux中tar命令
查看>>
Vue 中watch和computed 的用法及区别
查看>>
设计模式:第二章--抽象工厂模式
查看>>
Redis分布式锁
查看>>