Django——模板

Django——模板

Django 提供一种动态生成 HTML 页面 —— 模板

1、模板语言

模板语言(DTL): 变量 , 注释 , 标签 , 过滤器 , 模板继承

1、变量

<body>
<!-- 这个是前端中的注释 -->
{# 这种是Django中模板语言的注释 #}
<div style="color: red"><p>变量</p><p>姓名:{{ name }}</p><p>年龄:{{ age }}</p><p>性别:{{ gender }}</p>
</div>
<div style="color: blue"><p>调用函数</p><p>{{ demo }}</p><p>调用类</p><p>{{ Demo.name }}</p><p>{{ Demo.eat }}</p><p>调用对象</p><p>{{ ek.name }}</p><p>{{ ek.eat }}</p>
</div>
<div><p>列表</p><p>{{ ll }}</p><p>通过下标获取列表中的数据</p><p>{{ ll.1 }}</p>
</div>
</body>
def template_view(request):name = '阿宸'age = 17gender = '男'# 可以将函数,类传递到 html 模板中def demo():return '你好呀'class Demo:def __init__(self):self.name = '尔康'def eat(self):return "等下一起去吃KFC"ek = Demo()ll = ['叶晓春','樱岛麻衣','境界']return render(request , 'template_demo.html' , locals())

2、过滤器

过滤器的格式:{{ 变量名|过滤器名称:数据}}

<body>
<div style="color: red"><p>default 过滤器</p><p>当变量为空或者为 False 的时候响应为设置的默认值</p>{{ sex | default:'靓仔' }}<br>{{ age | default:'18' }}
</div>
<div style="color: green"><p>length 过滤器</p><p>返回变量的长度</p>{{ name | length }}<br>{{ ll | length }}
</div>
<div style="color: black"><p>safe 过滤器</p><p>可以将带有 html 标签的字符串进行格式转换 </p>{{ name | safe }}<br>{{ html_str }}{{ html_str | safe }}
</div>
<div style="color: #096"><p>rendom 过滤器</p><p>在指定的列表中随机获取一个数据</p>{{ ll | random }}
</div>
</body>

自定义过滤器

在应用下创建 templatetags 包 , 在这个包内创建一个 py 文件

from django import templateregister = template.Library()# 自定义过滤器
# name 是定义过滤器名称的
@register.filter(name='max_number')
def num(num_1 , num_2):return max(num_1 , num_2)
<div style="color: #096"><p>自定义过滤器</p>{# 导入自定义过滤器的模块 #}{% load mytag %}{{ age | max_number:27 }}
</div>

3、流程控制

if 判断

{% if 判断条件 %}
……
{% elif 判断条件 %}
……
{% else %}
……
{% endif %}

for 循环

{% for 变量名 in 可迭代对象 %}
……
{% endfor %}
<p>if 判断</p>
{% if age > 18 %}<div style="color: red">{{ name }}</div>
{% else %}<div style="color: pink">{{ gender }}</div>
{% endif %}
<div><p>for 循环</p>{% for i in ll %}{# forloop 循环信息 #}
{#        {{ forloop }}#}<li>{{ forloop.counter0 }}:{{ i }}</li>{% endfor %}
</div>

4、include 标签

include 标签用户模板的包含

<div style="color: blue"><p>模板A</p><p>作者:{{ name }}</p><p>籍贯:{{ add }}</p><p>联系地址:{{ tel_addr }}</p>
</div>
<div>{#  {% include 'include_demo.html' %} #}{#  {% include 'include_demo.html' with 导入模板参数 %} #}{% include 'include_demo.html'  with  name='ac' add='广东' tel_addr='广州天河花城大道'%}
</div>

5、自定义 inclusion_tag

制作局部的 html 标签

局部标签中的内容需要通过模板引擎来制作

# 自定义 inclusion_tag
# inclusion_tag 制定局部标签在哪一个文件中
@register.inclusion_tag('tag.html')
def tag_demo():ls = ['?:','境界','樱岛麻衣','。。','叶晓春']return locals()
<ul>{% for l in ls %}<li>{{ l }}</li>{% endfor %}
</ul>
<div>{% load mytag %}{# 使用自定义的局部标签 , 标签的名称就是自定义标签的函数名 #}{% tag_demo %}
</div>

6、模板继承

子模板继承语法: {% extends '父模板文件名' %}

重写模板:{% block 名称 %}{% endblock 名称 %} 被这个标签包含的 , 子模板可以重写

<body>
<div><p>阿宸好帅</p>
</div>{% block content %}
<div><p>等下那个一起去吃KFC</p><p>尔康、樱岛麻衣</p>
</div>
{% endblock content %}<div>
{% block neiron %}
{% endblock neiron %}
</div></body>
{# 继承模板页面 #}
{% extends 'f_extend.html' %}{# 重写父模板中的内容 #}
{% block content %}
<div><p>樱岛麻衣:我还有倒三角</p>
</div>
{% endblock content %}{% block neiron %}<p>境界:看回放辣眼睛</p>
{% endblock %}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/737261.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

25改考408最新资讯!拷贝

东北大学 东北大学计算机考研全面改考408 东北大学计算机学院官网&#xff1a;http://www.cse.neu.edu.cn/6274/list.htm 东北大学计算机考研全面改考408 公告原文 东北大学计算机科学与工程学院关于调整2025年硕士研究生招生计算机科学与技术、计算机技术、人工智能专业初试…

【JAVA类】利用接口的多继承实现———图书管理系统【附源码】

引言 在我们学习了一些java的基础语法之后&#xff0c;需要把这些知识点可以串起来&#xff0c;这里使用一个简单的小项目可以很好的帮助我们牢记这些知识点&#xff0c;今天就带大家学习一个有关java的小项目&#xff0c;很多学校也经常把这个项目作为他们的课程设计——经典的…

从零学习Linux操作系统 第三十二部分 Ansible中的变量及加密

一、变量的基本设定及使用方式 变量命名&#xff08;与shell相同&#xff09;&#xff1a; 只能包含数字&#xff0c;下划线&#xff0c;字母 只能用下划线或字母开头 .变量级别&#xff1a; 全局从命令行或配置文件中设定的paly:在play和相关结构中设定的主机:由清单&…

基于 Win Server 2008 复现 IPC$ 漏洞

写在前面 本篇博客演示了使用 winXP&#xff08;配合部分 win10 的命令&#xff09;对 win server 2008 的 IPC$ 漏洞进行内网渗透&#xff0c;原本的实验是要求使用 win server 2003&#xff0c;使用 win server 2003 可以规避掉很多下面存在的问题&#xff0c;建议大家使用 …

蓝桥杯:跑步锻炼

题目 题目描述 小蓝每天都锻炼身体。 正常情况下&#xff0c;小蓝每天跑 1 千米。如果某天是周一或者月初&#xff08;1 日&#xff09;&#xff0c;为了激励自己&#xff0c;小蓝要跑 2 千米。如果同时是周一或月初&#xff0c;小蓝也是跑 2 千米。 小蓝跑步已经坚持了很长…

c++ 新的函数声明语法

右值引用(&&) 右值引用(&&)允许我们定义接受临时对象或移动语义的函数。 void foo(int&& x); // 右值引用参数默认参数 允许在函数声明中指定参数的默认值。 void bar(int x, double y 3.14); // 带有默认参数的函数声明noexcept关键字 指示函数…

如何在Linux部署FastDFS文件服务并实现无公网IP远程访问内网文件——“cpolar内网穿透”

文章目录 前言1. 本地搭建FastDFS文件系统1.1 环境安装1.2 安装libfastcommon1.3 安装FastDFS1.4 配置Tracker1.5 配置Storage1.6 测试上传下载1.7 与Nginx整合1.8 安装Nginx1.9 配置Nginx 2. 局域网测试访问FastDFS3. 安装cpolar内网穿透4. 配置公网访问地址5. 固定公网地址5.…

TCP多线程模型、IO模型(select、poll、epoll)

我要成为嵌入式高手之3月11日Linux高编第十九天&#xff01;&#xff01; ———————————————————————————— TCP并发模型 一、TCP多线程模型&#xff1a; 缺点&#xff1a;创建线程会带来资源开销&#xff0c;能够现的并发量比较有限 二、IO模型&…

【PHP】PHP通过串口与硬件通讯,向硬件设备发送数据并接收硬件返回的数据

一、前言 之前写过两篇PHP实现与硬件串口交互的文章&#xff0c;一篇是【PHP】PHP实现与硬件串口交互&#xff0c;接收硬件发送的实时数据&#xff08;上&#xff09;_php串口通信-CSDN博客&#xff0c;另一篇是【PHP】PHP实现与硬件串口交互&#xff0c;向硬件设备发送指令数…

HarmonyOS NEXT应用开发之图片缩放效果实现

腾讯T10级高工技术&#xff0c;安卓全套VIP课程全网免费送&#xff1a;https://docs.qq.com/doc/DSG1vYnRxSElnU3hE 学习鸿蒙开发势在必行。鸿蒙开发可参考学习文档&#xff1a;https://qr21.cn/FV7h05 介绍 图片预览在应用开发中是一种常见场景&#xff0c;在诸如QQ、微信、…

Facebook商城号为什么被封?如何防封?

由于Facebook商城的高利润空间&#xff0c;越来越多的跨境电商商家注意到它的存在。Facebook作为全球最大、用户量最大的社媒平台&#xff0c;同时也孕育了一个巨大的商业生态&#xff0c;包括广告投放、商城交易等。依托背后的大流量&#xff0c;Facebook商城起号较快&#xf…

GPU,一统天下

三十年前&#xff0c;CPU 和其他专用处理器几乎处理所有计算任务。那个时代的显卡有助于加快 Windows 和应用程序中 2D 形状的绘制速度&#xff0c;但没有其他用途。 快进到今天&#xff0c;GPU 已经成为业界最具主导地位的芯片之一。 但具有讽刺意味的是&#xff0c;图形芯片…

ETCD入门

目录 一、简介 1. etcd是什么 2. 特点 3. 使用场景 4. 关键字 5. 工作原理 6. 获取 二、安装 1. etcd安装前的介绍 2. 安装 3. 启动 4. 创建一个etcd服务 三、ETCD的使用 一、简介 1. etcd是什么 etcd是CoreOS团队于2013年6月发起的开源项目&#xff0c;它的目标是…

Retrofit

1.导入依赖 //Retrofit 核心库implementation("com.squareup.retrofit2:retrofit:2.9.0")//响应数据自动序列化//JSONimplementation("com.squareup.retrofit2:converter-gson:2.9.0")//String类型implementation("com.squareup.retrofit2:converter…

Python速度大比拼:与主流编程语言的速度对决

在评估用于具体业务的编程语言时&#xff0c;经常考虑的一个关键指标之一是执行速度。Python以其简单性和可读性而闻名&#xff0c;但有时却因其性能而受到质疑。在这个领域&#xff0c;我们需要深入比较分析Python在执行速度方面与其他流行的编程语言相比的情况。 程语言执行速…

数据结构与算法-二叉排序树

引言 在计算机科学中&#xff0c;数据结构和算法是构建高效程序的核心要素。其中&#xff0c;二叉排序树&#xff08;Binary Search Tree, BST&#xff09;作为一种基于二叉树的特殊数据结构&#xff0c;因其在搜索、插入和删除操作上的优秀性能而被广泛应用。本文将详细解析二…

网络编程(3/6)

使用C语言完成数据库的增删改 #include<myhead.h> int do_add(sqlite3 *ppDb) {int numb;char name[50];int salary;printf("请输入员工信息&#xff1a;工号、姓名、薪水\n");scanf("%d %s %d",&numb,name,&salary);char sql[128];char *e…

Nginx七层的负载均衡使用keepalived实现高可用

目录 一、环境准备 二、两台nginx服务器作为代理服务器,配置nginx的负载均衡 三、Keepalived实现调度器 Proxy-master 与 Proxy-slave机器同时操作安装 备份配置文件 编辑主Proxy-master的配置文件 编辑从 Proxy-slaver的配置文件 四、 启动KeepAlived&#xff08;主备…

PokéLLMon 源码解析(一)

.\PokeLLMon\poke_env\concurrency.py # 导入必要的模块 import asyncio import atexit import sys from logging import CRITICAL, disable from threading import Thread from typing import Any, List# 在新线程中运行事件循环 def __run_loop(loop: asyncio.AbstractEvent…

CleanMyMac X4.15中文完整免费版下载

CleanMyMac X是一款功能全面的Mac管理软件&#xff0c;它能帮助用户清理无用的文件&#xff0c;监控系统健康&#xff0c;管理启动项&#xff0c;甚至还能移除恶意软件&#xff0c;确保你的Mac保持最佳状态。其直观的界面设计使得新手用户也能轻松上手&#xff0c;一键扫描和清…