Django-模板 templates

Django-模板

  • Django中的模板是由 html充当的、默认存储在 templates 下

模板中常见的标签

输出标签 {{ key }}

判断标签

{% if 条件 %} {% elif 条件 %} {% else %} {% endif %}

{% ifequal a b %} {% endifequal %} => 相当于 python 中 if ab

{% ifnotequal a b %} {% endifnotequal %} ===> 相当于 python 中 if a!=b

循环标签

{% for var in list %}

{% empty %}
– list 如果为空,显示的内容

{% endfor %}

在 for 标签中,内置了一个 forloop 对象

forloop是一个字典格式的数据、内置的键

  • parentloop: django视图函数 render传过来的 forloop的值
  • counter0 索引
  • counter 索引 + 1
  • revcounter0 倒叙索引
  • revcounter 倒叙索引 + 1
  • first 是否是第一条记录
  • last 是否是最后一条记录

load 标签

{% load static %}

static 标签

  • 用来加载静态资源,在使用 static 标签的时候,必须先 {% load static %}

{% static ‘css/index.css’ %} ====> /static/css/index.css, 前提是 STATIC_URL = /static/

url 标签

  • 在模板中,经常会定义路由地址, url标签主要是用来 通过 路由的名称 获取路由的地址 (路由反向解析技术)

{% url 路由名称 路由参数… %}

include 标签

  • 将模板中重复的内容,提取到一个 新的模板中、在原模板中,通过 include 动态加载 新模板中的内容,以达到代码的重复使用

{% include ‘xxxx.html’ %}

block 标签

  • 在 父模板中,使用 block 定义块
  • 在 子模板中,填充块

extends 标签

  • 在 子模板中,使用 extends 标签 继承 父模板

模板中常见的内置过滤器

  • 对模板中的数据进行过滤、加工处理
  • django内置的过滤器 defaultfilters.py 中定义
过滤器说明备注
capfirst首字母转大写
floatformat小数格式化保留小数
lower转小写
make_list转列表
truncatechars截取指定长度的字符{{str:truncatechars:4}}
upper转大写
wordcount统计单词个数
ljust左对齐如果长度不够指定的位置,则在右边补空格
rjust右对齐如果长度不够指定的位置,则在左边补空格
cut去掉字符串中指定的字符串
safe代表要过滤器的字符串是允许使用html标签的尽量不要使用,易存在 XSS攻击
first获取第一个元素
join通过指定的分隔符连接list,形成一个字符串
last获取最后一个元素
length获取长度
lenght_is判断长度是否是指定的长度
random随机从指定的数据中获取一个元素
add数字 + 运算
date格式化日期Y-m-d H:i:s
default对None设置默认值
filesizeformat文件大小的格式化

django模板 自定义过滤器

  • 过滤器必须在某个应用下,才能生效

自定义过滤器的步骤

  • resource应用下,新建一个 templatetags 包 (名字是固定的)
  • 在 settings.py 配置文件的 INSTALLED_APPS 下激活
INSTALLED_APPS = [
	...
	'resource.templatetags',
]

  • 在 templatetags 包下、新建一个 extra_filters.py (名字是随意的)
from django.template.library import Library

# 创建一个 Libray 对象, 是用来注册 自定义的过滤器
register = Library()


@register.filter
def ext(value):
    allows_ext_list = ["doc", "docx", "exe", "pdf", "ppt", "rar", "txt", "xlsx", "zip"]

    return value if value in allows_ext_list else "unknow"

  • 在模板中,使用 load 标签,加载 自定义过滤器模块
{% load  extra_filters %}
  • 使用过滤器

value|filter:args

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值