Django入门笔记(三)_模板语法

取值

{{ value }} <!-- 值-->
{{ ls.0 }} <!-- 列表-->
{{ dt.name }} <!-- 字典-->
{{ string.upper }} <!-- 对象方法-->

{{ request.user }} <!-- 当前用户-->
{{ request.path }} <!-- 当前网址-->
{{ request.GET.urlencode }} <!-- 当前GET参数-->

for循环

<!-- 语法-->
{% for item in items %}
    ...
{% empty %}
	...
{% endfor %}
    
    
<!-- forloop-->
{{ forloop.counter }} <!-- 索引从1开始算-->
{{ forloop.counter0 }} <!-- 索引从0开始算-->
{{ forloop.revcounter }} <!-- 	索引从最大长度到1-->
{{ forloop.revcounter0 }} <!-- 索引从最大长度到0-->
{{ forloop.first }} <!-- 当遍历的元素为第一项时为真-->
{{ forloop.last }} <!-- 当遍历的元素为最后一项时为真-->
{{ forloop.parentloop }} <!-- 嵌套循环中获取上一层的forloop-->

if逻辑

{% if cond %}
...
{% elif cond %}
...
{% else %}
...
{% endif %}

with语句

{% with total=business.employees.count %}
    {{ total }} employee{{ total|pluralize }}
{% endwith %}

csrf_token

<form action="/tag/" method="post">
    {% csrf_token %}
    <p><input type="text" name="haiyan"></p>
    <input type="submit">
</form>

过滤器调用

{{ false|default:"deval" }} <!-- false或者为空列表时返回deval-->
{{ "hello world!"|length }} <!-- 返回列表长度-->
{{ 84531|filesizeformat }} <!-- 1024为基数格式化为文件尺寸-->
{{ datetime|date:"Y-m-d" }} <!-- 格式化日期-->
{{ "hello world!"|slice:"2:-1" }} <!-- 切片-->
{{ content|truncatechars:20 }} <!-- 字符超过长度截断-->
{{ content|truncatewords:4 }} <!-- 单词超过长度截断-->
{{ tag|safe }} <!-- 标签不作转义输出-->

自定义标签与过滤器

TEMPLATES = [
    {
        # ...
        'OPTIONS': {
            # ...
            'libraries':{
                'my_customer_tags':  'yourapp.templatetags.my_customer_tags',
            }
        },
    },
]

或者 pip install django-crispy-forms

from django import template
from django.utils.safestring import mark_safe

register = template.Library()

# 过滤器
@register.filter
def sum_ft(x,y)
	return x,y
	
# 标签
@register.simple_tag
def sum_tag(x,y)
	return x,y
	
@register.simple_tag
def my_input(addr):
   return mark_safe('<a href="%s"></a>' %addr)
  • 调用
{{ 1|sum_ft:1 }}

{% sum_tag 1 1 %}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值