Django之模板层

【1】模板之变量

        在Django模板中要想使用变量关键是使用点语法。

 

获取值的语法是:{{ 变量名 }} 

 

Python中所有的数据类型包括函数,类等都可以调用

【2】模板之过滤器

  • 过滤器语法
    • {{ obj | filter_name:param }}
      • obj:变量名字,filter_name:过滤器名称,param:变量
  • default过滤器
    • 如果一个变量是false或者为空,使用给定的默认值。否则,使用变量的值
    • 语法:{{ value | default:'onthing' }}
  • length过滤器
    • 返回值的长度。对列表和字符串都起作用
    • 语法:{{ value | length }}
  • filesizeformat过滤器
    • 将值格式化为一个人类可读的文件尺寸(例如:13KB,4.1MB等)
    • 语法:{{ value | filesizeformt }}
  • date过滤器
    • 如果value=datetime.datetime.now(),返回当前的时间
    • 语法:{{ value | date:"Y-m-d" }}
  • slice过滤器
    • 切分,如果value=' helloworld '
    • 语法:{{ value | slice:"2:6"}}
  • truncatechars过滤器
    • 如果字符串多于指定的字符数量,那么会被截断。截断的字符串将以(.....)结尾
    • 参数:要截断的字符数
    • 语法:{{ value | truncatechars:6}}
  • safe过滤器
    • 取消对HTML标签和js等语法标进行自动转义
    • 语法:{{ value | safe }}

在Django中有两种方法关闭HTML的自动转义:

        1、通过safe过滤器

        2、通过django内部的mark_safe方法:

        

from django.utils.safestring import mark_safedef index(request):res = mark_safe('<a>hello</a>')return render(request,'index.html')'''然后在index.html中使用{{ res }}查看结果'''

【3】模板之标签

        【3.1】for标签

        for标签:遍历每一个元素

        

        语法:

                

# 循环一个字典{% for user in user_dict %}<p>{{ user }}</p>
{% endfor %}{% for key,value in user_dict.items %}<p>{{ key }}:{{ value }}</p>
{% endfor %}{% for user in user_dict.items %}<p>{{ user }}</p>
{% endfor %}{% for user in user_dict.keys %}<p>{{ user }}</p>
{% endfor %}{% for user in user_dict.values %}<p>{{ user }}</p>
{% endfor %}'''
items:拿到字典key值和value值keys:只拿到字典的key值value:只拿到字典的value值
'''{% for user in user_dict %}<p>{{ forloop }}</p>
{% endfor %}'''
循环序号可以通过{{forloop}}显示指定{{forloop}}后会打印出以下的值{'parentloop': {}, 'counter0': 0, 'counter': 1, 'revcounter': 3, 'revcounter0': 2, 'first': True, 'last': False}counter0:代表的是索引数counter:代表是的顺序first:代表的第一个last:代表的最后一个
'''
        【3.2】for......empty标签

        for标签带有一个可选的{% empty %} 从句,以便在循环的对象为空或者没有找到时,可以有所操作

 

语法:

        

{% for person in person_list %}<p>{{ person.name }}</p>{% empty %}<p>sorry,no person here</p>
{% endfor %}'''
person_list为空或者找不到时会执行{% empty %}中的p标签的执行
'''
        【3.3】if标签

        {% if %}会对一个变量求值,如果它的值是True(存在,不为空,且不是false),对应的内容块会输出。总而言之就是和python中的if语句使用方法类似

 

语法:

        

def index(request):num=89
return render(request,'index.html'){% if num > 100 or num < 0 %}<p>无效</p>
{% elif num > 80 and num < 100 %}<p>优秀</p>
{% else %}<p>凑活吧</p>
{% endif %}

if语句支持 and、or、==、>、<、!=、<=、>=、in、not in、is、is not判断

        【3.4】with标签

        使用一个简单的名字缓存一个复杂的变量,简而言之就是起别名

 

语法:

        

def index(request):d = {'username':'kevin','age':18,'info':'这个人有点意思','hobby':[111,222,333,{'info':'NB'}]}
return render(request,'index.html')# with起别名
{% with d.hobby.3.info as nb  %}<p>{{ nb }}</p>在with语法内就可以通过as后面的别名快速的使用到前面非常复杂获取数据的方式<p>{{ d.hobby.3.info }}</p>
{% endwith %}

【4】模板之导入

  • 模板导入就是将一个html文件导入到另一个html文件之中
  • 语法
    • {% include ' 模板名称 ' %}
    •  在导入文件中写导入

【5】模板之继承

模板继承可以让您继承另一个模板的所有元素,还可以定义能够被字模板覆盖的block

  • 继承的语法:
    • {% extends '被继承的模板' %}

block标签定义了3个可以被字幕版内容填充的block。block模板告诉模板引擎:字幕版可能会覆盖掉模板中的这些位置

 

block独立块的语法:

        {% block 名字(随意) %}

                 ''要覆盖的内容''

        {% endblock %}

        

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

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

相关文章

mysql 常见操作指令

use k_order – 查看版本 select version(); – 查看所有数据库 show databases; – 查看所有执行引擎 show engines; – 查看当前数据库 select database(); – 查看所有table show tables; – 查看默认存储引擎 SHOW VARIABLES LIKE ‘default_storage_engine’; – 系…

[acwing周赛复盘] 第 94 场周赛20230311

[acwing周赛复盘] 第 94 场周赛20231118 总结5295. 三元组1. 题目描述2. 思路分析3. 代码实现 5296. 边的定向1. 题目描述2. 思路分析3. 代码实现 六、参考链接 总结 好久没做acw了&#xff0c;挺难的。T1 模拟T2 前缀和以及优化。T3 贪心 5295. 三元组 链接: 5295. 三元组…

Mybatis学习笔记-映射文件,标签,插件

目录 概述 mybatis做了什么 原生JDBC存在什么问题 MyBatis组成部分 Mybatis工作原理 mybatis和hibernate区别 使用mybatis&#xff08;springboot&#xff09; mybatis核心-sql映射文件 基础标签说明 1.namespace&#xff0c;命名空间 2.select&#xff0c;insert&a…

【动态规划】求解编辑距离问题

目录 问题描述递推关系运行实例时空复杂度优化Hirschberg 算法 问题描述 编辑距离问题是求解将⼀个字符串转换为另⼀个字符串所需的插⼊、删除、替换的最小次数。 C O M M O M → s u b C O M M U M → s u b C O M M U N → i n s C O M M U N E \mathbb{COMMOM} \overset{sub…

八个开源免费单点登录(SSO)系统

使用SSO服务可以提高多系统使用的用户体验和安全性&#xff0c;用户不必记忆多个密码、不必多次登录浪费时间。下面推荐一些市场上最好的开源SSO系统&#xff0c;可作为商业SSO替代。 单点登录&#xff08;SSO&#xff09;是一个登录服务层&#xff0c;通过一次登录访问多个应…

TensorRt推理加速框架Python API服务器部署教程以及运行Helloworld程序

一、确认cuda工具包和n卡相关驱动是否安装 在终端中输入以下命令&#xff1a; nvcc -V如果出现以下提示&#xff0c;则已经成功安装 在终端中输入以下命令&#xff1a; nvidia-smi如果出现即为成功&#xff0c;我在这里就不去介绍怎么下载cuda和驱动怎么下载了&#xff0c;…

探索NLP中的核心架构:编码器与解码器的区别

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

微信小程序手写table表格

wxml <view class"table"><view class"tr bg-w"><view class"th">张三</view><view class"th" style"color: #409eff;">李四</view><view class"th ">王五</view&…

oracle19c单机应用补丁-缺少包导致失败

安装oracle19c单机没有显示缺少包&#xff0c;但应用补丁时导致失败&#xff0c; 1、缺少fuser命令 orcl:db> opatch apply Oracle Interim Patch Installer version 12.2.0.1.40 Copyright (c) 2023, Oracle Corporation. All rights reserved. Oracle Home : /u0…

分类预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多特征分类预测

分类预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多特征分类预测 目录 分类预测 | Matlab实现PSO-BiLSTM-Attention粒子群算法优化双向长短期记忆神经网络融合注意力机制多特征分类预测分类效果基本描述程序设计参考资料 分类效果…

使用Spring Boot实现大文件断点续传及文件校验

一、简介 随着互联网的快速发展&#xff0c;大文件的传输成为了互联网应用的重要组成部分。然而&#xff0c;由于网络不稳定等因素的影响&#xff0c;大文件的传输经常会出现中断的情况&#xff0c;这时需要重新传输&#xff0c;导致传输效率低下。 为了解决这个问题&#xff…

十三、Docker的安装

0.安装Docker Docker 分为 CE 和 EE 两大版本。CE 即社区版&#xff08;免费&#xff0c;支持周期 7 个月&#xff09;&#xff0c;EE 即企业版&#xff0c;强调安全&#xff0c;付费使用&#xff0c;支持周期 24 个月。 Docker CE 分为 stable test 和 nightly 三个更新频道…

Cannot convert string value ‘UNIFIED_TEST_PLATFORM‘ to an enum value of type

一、错误解决 Cannot convert string value UNIFIED_TEST_PLATFORM to an enum value of type com.android.builder.model.AndroidGradlePluginProjectFlags$BooleanFlag (valid case insensitive values: APPLICATION_R_CLASS_CONSTANT_IDS, TEST_R_CLASS_CONSTANT_IDS, TRAN…

联想笔记本电脑触摸板失灵了怎么办

这里写自定义目录标题 thinkbook笔记本电脑触摸板失灵 thinkbook笔记本电脑触摸板失灵 由于重装系统&#xff0c;导致笔记本的触控板失灵&#xff0c; 网上说的办法有 1、按键盘上的ctrlf6键&#xff0c;打开触控板功能&#xff1a;无效 2、设置——>设备——>触控板&am…

【powershell】入门和示例

▒ 目录 ▒ &#x1f6eb; 导读开发环境 1️⃣ 简介用途IDE解决此系统上禁止运行脚本 2️⃣ 语法3️⃣ 实战数据库备份执行循环拷贝文件夹 &#x1f6ec; 文章小结&#x1f4d6; 参考资料 &#x1f6eb; 导读 开发环境 版本号描述文章日期2023-11-17操作系统Win10 - 22H21904…

23111709[含文档+PPT+源码等]计算机毕业设计基于Spring Boot智能无人仓库管理-进销存储

文章目录 **软件开发环境及开发工具&#xff1a;****功能介绍&#xff1a;****论文截图&#xff1a;****数据库&#xff1a;****实现&#xff1a;****代码片段&#xff1a;** 编程技术交流、源码分享、模板分享、网课教程 &#x1f427;裙&#xff1a;776871563 软件开发环境及…

SQL server从安装到入门(一)

文章目录 彻底安装怎么安装&#xff1f;Polybase要求安装orcale jre 7更新 51或更高版本&#xff1f;安装完怎么配置&#xff1f;没有SSMS&#xff1f; 熟悉一下SMSS&#xff01; 根据本人实际安装和初步使用SQL server的过程中&#xff0c;经历的一些关键性的步骤和精品文章。…

Vue项目引入translate.js 国际化自动翻译组件

建议 translate.js 配合 i18 使用 本文只介绍 translate.js 的引入和使用方式 无论什么库 在翻译上 都不会做到 &#xff08; 100%翻译 && 100%准确 &#xff09; 所以不要吹毛求疵 官方文档&#xff1a;translate.js 前端翻译 该组件优点&#xff1a; 自动翻译 自动…

问卷工具价格一览:合理定价,满足您的预算需求

在市场调研、市场营销和客户反馈收集等方面&#xff0c;问卷调查是一项重要而有效的工具。而在众多的问卷工具中&#xff0c;Zoho Survey以其丰富的功能和灵活的定价模式而备受关注。Zoho Survey的定价如何&#xff1f;今天我们来聊一聊。 Zoho Survey提供了多种定价方案&…

通过python简单预测彩票下次是否中奖:LSTM、LogisticRegression

背景&#xff1a;根据往期历史中奖记录&#xff0c;预测下次中奖的概率&#xff01;总共有日期和中奖结果两个字段&#xff0c;中奖为1&#xff0c;不中奖为0&#xff0c;休息日的记录删除不要&#xff01; 一&#xff1a;LSTM预测 import numpy as np import pandas as pd im…