Django模版层

解析:    
forloop内置对象:运行结果解析
'counter0': 从0开始计数    
'counter' : 从1开始计数    'first': True,判断循环的开始
'last' : Tues,判断循环的结束

模版变量的书写

我们可以在html中编写python代码。

演示:

  {{ 填写变量 }}{% 填写类的 %}{{ d.0 }}
{{ d.1 }}
{{ d.3 }}
{{ user_dict.hobby.2 }}
{{ index }}
{{ obj.score }}

过滤器(内置函数)

语法格式

{{ 变量名称|过滤器名称(函数名):变量 }}

过滤器功能示例
default如果一个变量是false或者为空,使用给定的默认值。 否则,使用变量的值。{{ value|default:"nothing"}}
length对于字符串列表这类有length属性的,得到其值{{ value|length}}
filesizeformat将传入的数字当做文件的字节数,将其处理成合适展示的文件大小,如2048就会展示为2 KB{{ value|filesizeformat }}
slice对字符串进行切片{{value|slice:"2:-1"}}
add将传入的数字或字符串做相加或拼接处理{{value|add:1}}
safe模板语法默认转义带html语法的文本,safe取消标签文本转义,让其可以被html渲染{{ value|safe}}
truncatechars如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“...”)结尾。{{ value|truncatechars:9}}
truncatewords在一定数量的字后截断字符串,处理同上...。{{ value|truncatewords:9}}
cut移除value中所有的与给出的变量相同的字符串如果value为'i love you',那么将输出'iloveyou'.{{ value|cut:' ' }}
timesincedatetime数据距离现在的时间(从现在起){{ blog_date|timesince }}
timeuntildatetime数据距离现在的时间(到现在止){{ blog_date|timesince }}
datedatetime数据字符化输出{{ value|date:"Y-m-d H:i:s"}}

示例:

default

def func(request):a = Truereturn render(request, 'func.html', locals())# 过滤器{{ a|default:'hello' }}

length

def func(request):a = Truell = [1, 2, 3, 4, 5]return render(request, 'func.html', locals())#过滤器
{{ ll|length }}

filesizeformat

def func(request):size = 123456789return render(request, 'func.html', locals())# 过滤器{{ size|filesizeformat }}

slice

def func(request):user = 'helloworld'return render(request, 'func.html', locals()){{ user|slice:"2:-1"}}

date

def func(request):import datetimedate_1 = datetime.datetime.now()return render(request, 'func.html', locals()){{ date_1|date:"Y-m-d-H:i:s" }}

truncatechars

def func(request):res = 'ssahjkdhasjdhkashdjshadsjahs'return render(request, 'func.html', locals()){{ res|truncatechars:6 }}

safe

def func(request):need = '<h1>标题</h1>'return render(request, 'func.html', locals()){{ need|safe }}

模版标签

定义:Django模版层的标签可以用来展示数据、控制流程、渲染HTML、处理表单等等

格式{% tag%}...标签内容...{% endtag%}

for标签

def login(request):user_dict = {'name': 'kk', 'age': 19, 'gender': 'male', 'salary': 22222}return render(request, 'login.html', locals()){% for dict in user_dict %}<p>{{ forloop}}</p>{{ dict }}
{% endfor %}

解析:

解析:    
forloop内置对象:运行结果解析
'counter0': 从0开始计数    
'counter' : 从1开始计数    'first': True,判断循环的开始
'last' : Tues,判断循环的结束

for循环

遍历(循环)字典里的数据

{% for key,val in user_dict.items %}<p>{{ key }}:{{ val }}</p>
{% endfor %}
{% for key in user_dict.keys %}{{ key }}{% endfor %}{% for val in user_dict.values %}{{ val }}{% endfor %}{% for item in user_dict.items %}<p>{{ item }}</p>{% endfor %}

if标签

if标签支持的有:if语句支持 and 、or、==、>、<、!=、<=、>=、in、not in、is、is not判断。

def login(request):num = 80return render(request, 'login.html', locals()){% if num > 100 or num < 0 %}<p>分数无效</p>{% elif num >= 90 and num <= 100 %}<p>棒</p>
{% elif num <= 90 and num >= 80 %}<p>还凑合</p>
{% elif num <= 80 and num >= 70 %}<p>一般</p>
{% else %}<p>太差了</p>
{% endif %}

演示for循环与if标签的混合使用

def login(request):l1 = [1, 2, 3, 4, 5]return render(request, 'login.html', locals()){% for foo in l1 %}{% if forloop.first %}<p>第一个数:{{foo}}</p>{% elif forloop.last %}<p>最后一个数:{{ foo }}</p>{% else %}{{ foo }}{% endif %}{% endfor %}

with


def login(request):d = {'name': 'kk', 'age': 19, 'gender': 'male', 'salary': 22222, 'love': ['football', 'singer', 'play_game']}return render(request, 'login.html', locals()){% with d.love as ss %}<p>{{ ss }}</p><p>{{ d.love}}</p>{% endwith %}

自定义标签

1、在settings中的INSTALLED_APPS配置当前app,不然django无法找到自定义的simple_tag.

2、在app中创建templatetags模块(模块名只能是templatetags

3、创建任意 .py 文件,如:my_tags.py

from django import template
from django.utils.safestring import mark_saferegister = template.Library()   #register的名字是固定的,不可改变@register.filter
def filter_multi(v1,v2):return  v1 * v2@register.simple_tag
def simple_tag_multi(v1,v2):return  v1 * v2@register.simple_tag
def my_input(id,arg):result = "<input type='text' id='%s' class='%s' />" %(id,arg,)return mark_safe(result)

模版的继承和导入

模板的继承

当我们多个页面有相似的页面,我们可以采用下列方法

1.我们直接复制粘贴>>>创建一个新的html

2.模板的继承

1.在模板中使用block划定子板>>方便以后修改的区域{% block 区域名称 %}{% endblock%}
2.子版继承母板{% extends 'home.html'%}{% block 区域名称 %}子板自己的内容{% endblock%}注意:子板也可以继续使用子模板的内容{{block.super}}

在原html中找到想要修改的区域,使用{%block%}之后把想要继承的区域放进去以{%endblock%}结尾

新建一个html文件后使用{% extends加上我们所继承html文件%}编写新建的样式等,之后使用endblock结尾,这样页面就修改完成了。

一个继承的html应该有三个区域:css区域,js区域,页面等例:{%block css%}就是写css的区域

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

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

相关文章

CentOS挂载:解锁文件系统的力量

目录 引言1 挂载简介2 挂载本地分区3 挂载网络共享文件系统4 使用CIFS挂载结论 引言 在CentOS&#xff08;一种基于Linux的操作系统&#xff09;上挂载文件系统是一项常见而重要的任务&#xff0c;无论是将新的磁盘驱动器添加到系统&#xff0c;还是挂载网络共享资源&#xff…

Amazon Bedrock | 大语言模型CLAUDE 2体验

这场生成式AI与大语言模型的饥饿游戏&#xff0c;亚马逊云科技也参与了进来。2023年&#xff0c;亚马逊云科技正式发布了 Amazon Bedrock&#xff0c;是客户使用基础模型构建和扩展生成式AI应用程序的最简单方法&#xff0c;为所有开发者降低使用门槛。在 Bedrock 上&#xff0…

面试经典(6/150)轮转数组

面试经典&#xff08;6/150&#xff09;轮转数组 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 以下为自己的思路&#xff0c;我不明白最终的返回值为什么有误&#xff0c;好像是题目里要求原地解决问题&#xff0c;而我创…

TSINGSEE青犀AI智能分析+视频监控工业园区周界安全防范方案

一、背景需求分析 在工业产业园、化工园或生产制造园区中&#xff0c;周界防范意义重大&#xff0c;对园区的安全起到重要的作用。常规的安防方式是采用人员巡查&#xff0c;人力投入成本大而且效率低。周界一旦被破坏或入侵&#xff0c;会影响园区人员和资产安全&#xff0c;…

小米路由器4A千兆版刷入OpenWRT并远程访问

小米路由器4A千兆版刷入OpenWRT并远程访问 文章目录 小米路由器4A千兆版刷入OpenWRT并远程访问前言1. 安装Python和需要的库2. 使用 OpenWRTInvasion 破解路由器3. 备份当前分区并刷入新的Breed4. 安装cpolar内网穿透4.1 注册账号4.2 下载cpolar客户端4.3 登录cpolar web ui管理…

SpringBoot-配置文件properties/yml分析+tomcat最大连接数及最大并发数

SpringBoot配置文件 yaml 中的数据是有序的&#xff0c;properties 中的数据是无序的&#xff0c;在一些需要路径匹配的配置中&#xff0c;顺序就显得尤为重要&#xff08;例如在 Spring Cloud Zuul 中的配置&#xff09;&#xff0c;此时一般采用 yaml。 Properties ①、位…

0基础如何学习软件测试?10分钟给你安排明白

先上一张学习路线&#xff1a; 在测试行业已经呆了5年多了&#xff0c;也算得上行业经验资深了吧&#xff0c;基本上也是摸清了这个行业的发展。 所以今天也想对有转行想法的朋友分享一下经验&#xff0c;能够让你对这个行业有个大致的了解和对以后的发展有所规划&#xff0c;…

双向链表的知识点+例题

1.链表的种类 题中常考查以下两种&#xff1a; 上一讲我们学了无头单向非循环链表&#xff0c;这节&#xff0c;让我们看一下双向链表的操作吧~ 2基本操作 1&#xff0c;定义双向链表 2&#xff0c;创建一个节点 3&#xff0c;初始化双链表 4&#xff0c;尾插一个节点 5打印…

全球温度数据下载

1.全球年平均温度下载https://www.ncei.noaa.gov/data/global-summary-of-the-year/archive/ 2.全球月平均气温下载https://www.ncei.noaa.gov/data/global-summary-of-the-month/archive/ 3.全球日平均气温下载https://www.ncei.noaa.gov/data/global-summary-of-the-day/ar…

一、认识STM32

目录 一、初识STM32 1.1 STM32的命名规则介绍 1.2 STM32F103ZET6资源配置介绍 二、如何识别芯片管脚 2.1 如何寻找 IO 的功能说明 三、构成最小系统的要素 一、初识STM32 1.1 STM32的命名规则介绍 以 STM32F103ZET6 来讲解下 STM32 的命名方法&#xff1a; &…

.Net8 Blazor 尝鲜

全栈 Web UI 随着 .NET 8 的发布&#xff0c;Blazor 已成为全堆栈 Web UI 框架&#xff0c;可用于开发在组件或页面级别呈现内容的应用&#xff0c;其中包含&#xff1a; 用于生成静态 HTML 的静态服务器呈现。使用 Blazor Server 托管模型的交互式服务器呈现。使用 Blazor W…

忆联消费级SSD AH660:将用户体验推向新高度

自1989年IBM推出世界上第一款固态硬盘&#xff08;SSD&#xff09;以来&#xff0c;SSD在三十多年的时间中历经了多次技术革新和市场变革&#xff0c;早已成为个人电脑、汽车电子、数据中心、物联网终端等领域的主流存储产品&#xff0c;并广泛应用于各行各业&#xff0c;在202…

node 第十八天 中间件express-session实现会话密钥

express-session 文档 express-session 一个简单的express会话中间件 使用场景 在一个系统中&#xff0c; 需要维持一个临时的与登录态无关的会话密钥 比如登录系统后&#xff0c; 请求某一个接口&#xff0c; 接口的行为与登录态无关&#xff0c; 也就是说任何人对接口的访问…

【JAVA-排列组合】一个套路速解排列组合题

说明 在初遇排列组合题目时&#xff0c;总让人摸不着头脑&#xff0c;但是做多了题目后&#xff0c;发现几乎能用同一个模板做完所有这种类型的题目&#xff0c;大大提高了解题效率。本文简要介绍这种方法。 题目列表 所有题目均从leetcode查找&#xff0c;便于在线验证 46.…

C语言判断素数(ZZULIOJ1057:素数判定)

题目描述 输入一个正整数n&#xff0c;判断n是否是素数&#xff0c;若n是素数&#xff0c;输出”Yes”,否则输出”No”。 注意&#xff1a;1不是素数。 输入&#xff1a;输入一个正整数n(n<1000) 输出&#xff1a;如果n是素数输出"Yes"&#xff0c;否则输出"…

spark性能调优 | 默认并行度

Spark Sql默认并行度 看官网&#xff0c;默认并行度200 https://spark.apache.org/docs/2.4.5/sql-performance-tuning.html#other-configuration-options 优化 在数仓中 task最好是cpu的两倍或者3倍(最好是倍数&#xff0c;不要使基数) 拓展 在本地 task需要自己设置&a…

如何使用Matplotlib模块的text()函数给柱形图添加美丽的标签数据?

如何使用Matplotlib模块的text函数给柱形图添加美丽的标签数据&#xff1f; 1 简单引入2 关于text()函数2.1 Matplotlib安装2.2 text()引入2.3 text()源码2.4 text()参数说明2.5 text()两个简单示例 3 柱形图绘制并添加标签3.1 目标数据3.2 读取excel数据3.3 设置窗口大小和xy轴…

如何提升软件测试效率?本文为你揭示秘密

在软件开发中&#xff0c;测试是至关重要的一个环节。它能帮助我们发现并修复问题&#xff0c;从而确保我们提供的软件具有高质量。然而&#xff0c;测试过程往往费时费力。那么&#xff0c;有没有方法可以提升我们的软件测试效率呢&#xff1f;答案是肯定的。下面&#xff0c;…

骨传导耳机品牌排名前十,盘点最受欢迎的五款TOP级骨传导耳机

骨传导耳机品牌排名前十&#xff0c;最受欢迎的五款TOP级骨传导耳机是什么&#xff1f; 耳机市场上有很多品牌和型号的骨传导耳机&#xff0c;每个人对耳机的需求和使用场景也不尽相同。因此&#xff0c;在选择耳机时&#xff0c;确实不能盲目跟风或者仅仅看重品牌。为了帮助大…

spring cloud之配置中心

Config 统一配置中心(*) 1.简介 # 统一配置中心 - 官网:https://cloud.spring.io/spring-cloud-static/spring-cloud-config/2.2.3.RELEASE/reference/html/#_spring_cloud_config_server- config 分为 config server 和 config client。用来统一管理所有微服务的配置统一配置…