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

Django-模板 templates相关推荐

  1. Python Django模板templates渲染及配置

  2. python后台架构Django教程——templates模板

    全栈工程师开发手册 (作者:栾鹏) 本文衔接至python后台架构Django开发全解. 有其他问题请先阅读:http://blog.csdn.net/luanpeng825485697/articl ...

  3. 【Youtobe trydjango】Django2.2教程和React实战系列七【模板templates和Django模板引擎】

    [Youtobe trydjango]Django2.2教程和React实战系列七[模板templates和Django模板引擎] 1. 修改视图函数 2. 新建模板文件夹和html文件 3. 项目配 ...

  4. Django 模板4.1

    模板介绍 作为Web框架,Django提供了模板,可以很便利的动态生成HTML 模版系统致力于表达外观,而不是程序逻辑 模板的设计实现了业务逻辑(view)与显示内容(template)的分离,一个视 ...

  5. Django模板、配置文件、静态文件及案例实现(创建模板、设置模板查找路径、模板接收视图传入的数据、模板处理数据、BASE_DIR、DEBUG、本地语言与时区、App应用配置)

    1.Django模板 网站如何向客户端返回一个漂亮的页面呢? 漂亮的页面需要html.css.js. 可以把这一堆字段串全都写到视图中, 作为HttpResponse()的参数,响应给客户端. 存在的 ...

  6. Django模板用法

    django模板原理 # 创建template对象,由context对象传递template所需要的值, 有render方法进行模板的呈现 # 写模板,创建 Template 对象,创建 Contex ...

  7. django模板过滤器

    django模板&过滤器 声明:部分信息来源这篇博客https://www.cnblogs.com/maple-shaw/articles/9333821.html MVC: 模型(model ...

  8. python django 模板

    1 用两个大括号括起来的文字{{person_name}} 称为变量 2 被 大括号和面分号包围的文件({% if ordered_warranty %})是模板标签 3 过滤器是用管道符(|) 和U ...

  9. Django—模板渲染

    参考文档: http://www.cnblogs.com/fnng/p/4373108.html https://code.ziqiangxuetang.com/django/django-intro ...

  10. Django模板继承

    继承这个概念在很多语言中都有,主要是子类从父类继承一些属性和函数,当然子类也可以重写父类函数的一些功能等等.在Django也有类似功能,这里的继承是指子类继承了父类的"界面布局" ...

最新文章

  1. 我竟然混进了Python高级圈子!
  2. 图像的评价指标之PSNR——峰值信噪比
  3. Ubuntu 14.04系统下安装和编译QT 5.9.2库(桌面版/ARM嵌入式IMX6版)
  4. Android系统匿名共享内存Ashmem(Anonymous Shared Memory)在进程间共享的原理分析
  5. 主板螺丝是机箱配还是主板配_要配新电脑,A520主板和B450主板哪一个更加值得购买?...
  6. 天猫11.11:搜索引擎实时秒级更新(转载)
  7. 解读NoSQL最新现状和趋势:云NoSQL数据库将成重要增长引擎
  8. prim求最短路径C语言,[图论]Prim算法求最小支撑树和最短路径
  9. TOM企业邮箱,为你打造企业专属邮箱
  10. wrf模式计算机配置,科学网-WRF模式的运行-张乐乐的博文
  11. php 字符串加密解密
  12. 千亿美妆市场“野蛮生长”,悦瞳靠“假睫毛”能否“翘”动市场?
  13. 十大排序算法代码集锦(java)
  14. 9495 删除线性表中所有值为x的元素
  15. 转行软件测试两年了,听大神说测试前途是IT里最low的,我慌了......
  16. yuan sir generator desk appliacation
  17. sublime快速插入多行递增的数字
  18. winds以管理员身份运行命令提示符
  19. 2019数据安装勾选_天正T20V5.0建筑安装包免费下载附安装教程
  20. 苹果App Store程序提交审核指南中文版

热门文章

  1. java抢购小米手机_小米手机怎样抢购
  2. Java计算机毕业设计体育馆数据管理系统源码+系统+数据库+lw文档
  3. 数据库迁移之mysql到达梦数据库
  4. pycharm-professional-2020.1下载与激活
  5. AMD主板 A85XM刷bios支持NVME启动
  6. pppoe指定服务器ip,PPPoE服务器相关配置
  7. Java登录页面实时验证用户名密码和动态验证码
  8. Raft源码分析(一) - State
  9. 关于信息系统监理师考试怎么备考?
  10. 原生JS案例(面向对象)——按住鼠标实现左右拖动列表