模板层

过滤器

语法结构

{{ 数据对象|过滤器名称:参数 }}

过滤器最多只能额外传输一个参数

常见过滤器

模板层

模板层

模板层

标签

注意事项

在django模板语法中写标签的时候,只需要写关键字然后tab键就会自动补全

语法结构

{% 名字 …%}

{% end名字 %}

if判断

{% if 条件1 %}

你好啊

{% elif 条件2 %}

他好呀

{% else %}

大家好

{% endif %}

for循环

提供了 forloop关键字

{% for i in l1 %}

{{ i }}

{% endfor %}

for+if其他使用

{% for i in l1 %}
{% if forloop.first %}

这是第一次循环

{% elif forloop.last %}

这是最后一次循环

{% else %}

中间循环

{% endif %}
{% empty %}

for循环对象为空 自动执行

{% endfor %}

自定义操作

前提操作

  1. 在应用下需要创建一个名为templatetags的文件夹
  2. 在该文件夹内创建一个任意名称的py文件
  3. 在该py文件内需要先提前编写两行固定的代码
from django import template
register = template.Library()

自定义过滤器

只能接收两个参数

模板层
@register.filter(is_safe=True)
def index(a, b):
    return a + b
{% load mytag %}
{{ n1|index:666 }}

View Code

自定义简单标签

可以接收任意的参数

@register.simple_tag(name='my_tag')
def func1(a, b, c, d):
    return a + b + c + d
{% my_tag 1 2 3 4 %}  # 参数之间空格隔开即可

自定义inclusion_tag

@register.inclusion_tag('left.html')
def func2(n):
    l1 = []
    for i in range(1, n + 1):
        l1.append(f'第{i}页')
    return locals()
{% func2 10 %} # 传入的参数是几就会打印几页
<ul>
    {% for foo in l1 %}
        <li>{{ foo }}li>
    {% endfor %}
ul>

该方法需要先作用于一个局部html页面,之后将渲染的结果放到调用的位置

模板导入

概念

类似于将html页面上的局部页面做成模块的形式,哪个地方想要直接导入即可展示

有一个非常好看的获取用户数据的页面,需要在网站的多个页面上使用

  • 策略1:拷贝多份即可
  • 策略2:模板的导入

使用方式

{% include ‘menu.html’ %}

menu.html只能是一个 局部页面,只能写 局部代码

注释语法

HTML的注释语法

django模板语法的注释

{# #}

注意事项

HTML的注释可以在前端浏览器页面上直接查看到,模板语法的注释 只能在后端查看,前端浏览器查看不了

模板继承

概念

类似于面向对象的继承:继承了某个页面就可以使用该页面上所有的资源

有很多网站的很多页面,其实都是差不多的,只是局部有所变化,模板的继承可以很好的实现该需求

继承步骤

  1. 先在模板中通过block划定将来可以被修改的区域
    {% block content %}
     <h1>主页内容h1>
    {% endblock %}
  2. 子板继承模板
{% extends 'home.html' %}
  1. 修改划定的区域
    {% block content %}
    <h1>登录内容h1>
    {% endblock %}
  2. 子页面还可以重复使用父页面的内容
{{ block.super }}

注意事项

模板上最少应该有三个区域:css区域、内容区域、js区域,子页面就可以有自己独立的css、js、内容

模板层

Original: https://www.cnblogs.com/zzs0626/p/16279000.html
Author: 顺溜_7
Title: 模板层

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/582442/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • SSH_远程终端

    SSH 远程服务 目的 Windwos 和 Linux 的终端控制系统or传送传送文件, 当然 Linux和Linux 以及 Windwos 和 Windwos 之间的通信都是OK…

    Linux 2023年6月7日
    083
  • 在Linux下使用rm -rf /*后会怎样?

    每个工作过的码农,也许不知道分布式,也许不知道高并发,但想必都知道这句鼎鼎大名的代码。本人对此也是比较好奇的,不妨用虚拟机试试看 首先是普通角色: 普通角色把 拥有权限的文件全都删…

    Linux 2023年6月14日
    092
  • 华为学习笔记一初识VRP

    VRP简介 VRP是Versatile Routing Platform的简称,是华为公司从低端到高端的全系列路由器、交换机等数据通信产品的通用网络操作系统。华为网络设备功能的配置…

    Linux 2023年6月7日
    0126
  • Markdown 常用语法精讲

    标题 (# 跟标题名称一定要留空格) 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 缩进 (使用) 这是缩进四个空格文本 (源码: 这是缩进四个空格文本) 强调/加粗…

    Linux 2023年6月7日
    0123
  • Python闭包

    前言 学习Python的单例实现的时候,遇到了下面这样的代码。很不理解为什么局部变量 _instance没有重新初始化。后来看到有人说这是闭包,于是又去了解了下 闭包。没想到闭包竟…

    Linux 2023年6月7日
    086
  • [20211217]滑稽可笑的程序代码2.txt

    [20211217]滑稽可笑的程序代码2.txt –//实在不知道如何取标题..感觉很无奈无语… –//昨天上午快下班的时候我使用ashtop看…

    Linux 2023年6月13日
    071
  • Guava中的封装的Map操作

    引入依赖 <dependency> <groupId>com.google.guavagroupId> <artifactId>guava…

    Linux 2023年6月7日
    099
  • 大数据集群服务启停脚本/常用端口/时间同步

    1、整体启动/停止HDFS start-dfs.sh/stop-dfs.sh 2、整体启动/停止YARN start-yarn.sh/stop-yarn.sh 1、分别启动/停止H…

    Linux 2023年6月8日
    081
  • k8s vs k3s: 差异解析

    2. K3s的优势 小型 K3s 的最大优势是它的尺寸最小(小于 100 MB),这有助于它以最少的设置在小型硬件中启动 Kubernetes 集群。 快速部署 curl -sfL…

    Linux 2023年6月13日
    0108
  • Debian 开机自动挂载磁盘

    首先要知道自己的磁盘是什么格式的, 常见的有 ext4 Fat32 ntfs exfat ntfs 和 exfat 磁盘格特殊说明, 因为需要额外支持才能挂载. 查看磁盘和分区的命…

    Linux 2023年6月7日
    095
  • MySQL Performance Schema详解

    MySQL的performance schema 用于监控MySQL server在一个较低级别的运行过程中的资源消耗、资源等待等情况。 1 performance schema特…

    Linux 2023年6月13日
    093
  • 监控域名,证书过期时间

    bash;gutter:true;</p> <h1>!bin/bash</h1> <p>date_Now=$(date +%Y%m%…

    Linux 2023年6月7日
    077
  • 环境变量

    环境变量,简单来说就是描述程序执行环境的一组变量。 1、什么程序执行环境? 环境已经基础词汇呢,我们通常都用环境去解释别的词,想一下,日常生活怎么用环境。你到一个新地方,我问你环境…

    Linux 2023年6月6日
    0107
  • 如何设置redis中hash的field的expire ?

    redis 127.0.0.1:6379> hset expire:me name tom (integer) 0 redis 127.0.0.1:6379> hget…

    Linux 2023年5月28日
    0104
  • 第2次作业:支付宝案例分析

    1.介绍产品相关信息 *你选择的产品是? 支付宝 *为什么选择该产品作为分析? 在使用支付宝前,像交学费这种金额比较大的金钱来往都得去银行处理,在银行排队通常需要很多时间,尤其是办…

    Linux 2023年6月8日
    071
  • Python垃圾回收和Linux Copy-on-Write机制

    前言 在口袋助理看到了其他部门的同事针对Python2内存占用做的一点优化工作,自己比较感兴趣,遂记录下。 Linux fork简介 fork是Linux提供的创建子进程的系统调用…

    Linux 2023年6月7日
    0116
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球