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 = True
    return render(request, 'func.html', locals())


    # 过滤器

    {{ a|default:'hello' }}

length

def func(request):
    a = True
    ll = [1, 2, 3, 4, 5]
    return render(request, 'func.html', locals())


#过滤器
{{ ll|length }}

filesizeformat

def func(request):

    size = 123456789
    return 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 datetime
    date_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 = 80
    return 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_safe
 
register = 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的区域

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

全年无休、随时更新, RPA在执行工作中的智能化创新

为深化政法智能化建设&#xff0c;加强“智慧治理”“智慧法院”“智慧检务”“智慧警务”“智慧司法”等信息平台建设&#xff0c;深入实施大数据战略&#xff0c;实现科技创新成果同政法工作深度融合。法制日报社于今年3月继续举办了2023政法智能化建设创新案例及论文征集宣传…

计算机视觉基础(8)——齐次坐标系与相机内外参

前言 本节我们将学习到透视投影、齐次坐标系等基础知识&#xff0c;在这些基础知识上&#xff0c;进一步了解到相机的参数&#xff0c;相机参数分为相机外参和相机内参&#xff0c;相机外参是从世界坐标系到相机坐标系&#xff0c;相机内参是从相机坐标系到图像坐标系。 一、透…

今年副业比主业赚得多...

我是从20年开始接触副业的&#xff0c;主要是在程序员外包平台上接单。从一开始的月入0到几百&#xff0c;到现在每个月稳定有小一万的收入。这个月接了一个比较大的项目&#xff0c;结款之后发现今年的副业已经比主业赚得多了&#xff0c;简直美滋滋~ 今年主业收入8w&#xff…

Qt QWebSocket实现JS调用C++

目录 前言1、QWebChannel如何与网页通信2、QWebSocketQWebChannel与网页通信2.1 WebSocketTransport2.2 WebSocketClientWrapper2.3 初始化WebSocket服务器2.4 前端网页代码修改 总结 前言 本篇主要介绍实现JS调用C的另一种方式&#xff0c;即QWebSocketQWebChannel。与之前的…

C#开发的OpenRA游戏之世界存在的属性RenderDebugState(5)

C#开发的OpenRA游戏之世界存在的属性RenderDebugState(5) 前面分析过一个调试的属性,在这里分析另外一个属性,这个属性就是RenderDebugState,它就是用来显示渲染的信息。 跟前面的分析规则可知,属性都是有一个信息类和操作类组成。 在这里信息类叫RenderDebugStateInfo…

Spring6(一):入门案例

文章目录 1. 概述1.1 Spring简介1.2 Spring 的狭义和广义1.3 Spring Framework特点1.4 Spring模块组成 2 入门2.1 构建模块2.2 程序开发2.2.1 引入依赖2.2.2 创建java类2.2.3 创建配置文件2.2.4 创建测试类测试 2.3 程序分析2.4 启用Log4j2日志框架2.4.1 引入Log4j2依赖2.4.2 加…

win10配置单一python版本的sublime运行环境

①新建test.py输入下面代码 import sys print ("Python Version {}".format(str(sys.version).replace(\n, ))) ②Ctrlshiftp选择python ③按下CtrlB

AC修炼计划(AtCoder Regular Contest 162)

传送门&#xff1a;AtCoder Regular Contest 162 - AtCoder A题签到 B - Insertion Sort 2 我们可以从头开始一个一个排序&#xff0c;把1通过操作放到第一个&#xff0c;把2通过操作放到第二个。。。以此类推。但会出现一种情况&#xff0c;如果我们所要排的数字在最后一位&…

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

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

基于鸽群算法优化概率神经网络PNN的分类预测 - 附代码

基于鸽群算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于鸽群算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于鸽群优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神经网络的光滑…

电子电机行业万界星空科技MES解决方案

现在电子电机行业规模越来越大&#xff0c;也伴随着生产和管理成本走向变高的现象。针对这个问题&#xff0c;mes系统就成为各电子电机制造业的最优选择。 电子机电行业MES涵盖了从原材料采购到最终产品交付的整个过程&#xff0c;包括生产计划、物料管理、生产过程监控、质量…

数字化档案管理系统解决方案

数字化档案管理系统解决方案是指将传统的纸质档案转化为数字化档案&#xff0c;采用计算机和网络技术实现对档案的存储、检索、管理、共享等操作的过程。 专久智能数字化档案管理解决方案及措施可以包括以下几个方面&#xff1a; 1. 采用数字化技术对档案进行数字化处理&#x…

kubernetes--资源调度

目录 一、自动调度 1. Pod 启动创建过程&#xff1a; 2. 调度过程&#xff1a; 2.1 调度分为几个部分&#xff1a; 2.2 常见的预算策略&#xff08; Predicate &#xff09;&#xff1a; 2.3 常见的优选策略&#xff08;priorities&#xff09;&#xff1a; 二、定向调度&…

性能小课堂:Jmeter录制手机app脚本!

环境准备&#xff1a;1.手机2.wifi3.Jmeter 具体步骤&#xff1a; 1、启动Jmeter&#xff1b; 2、“测试计划”中添加“线程组”&#xff1b; 3、“工作台”中添加“HTTP代理服务器”&#xff1b; 4、配置代理服务器&#xff1a;Global Settings下面的端口配置&#xff1a…

Redis 配置文件信息中文翻译版

前言 Redis 配置文件信息中文翻译版&#xff0c;方便大家阅读和理解对应参数信息及配置参数信息 # Redis configuration file example# Note on units: when memory size is needed, it is possible to specify # it in the usual form of 1k 5GB 4M and so forth: # 注意:当…

探索游戏公司跨部门合作的项目管理工具选择

为了实现出色的用户体验&#xff0c;游戏公司需要强大的研发能力和发行运营经验。通常情况下&#xff0c;游戏公司内部有多个独立工作的研发部门和发行部门&#xff0c;它们需要跨部门协作。随着公司快速发展和游戏项目增加&#xff0c;游戏公司迫切需要一套适用于特殊协作流程…

【Java 进阶篇】JQuery 案例:qq表情选择,表达情感的小黄脸

在我们的数字交流时代&#xff0c;表情符号已成为表达情感的重要方式之一。为了丰富用户的输入体验&#xff0c;qq表情选择功能应运而生。通过巧妙运用 JQuery&#xff0c;我们可以在页面中实现一个生动活泼的表情选择框&#xff0c;让用户轻松表达各种情感。本篇博客将深入探讨…

使用postman测试

第一步&#xff1a; 第二步&#xff1a; 第三步&#xff1a;添加请求 第四步&#xff1a;填写请求 代码实现自动关联的位置&#xff1a; 为相关联的接口设置环境&#xff1a; 使用设置的环境变量&#xff1a; 参数化实现测试&#xff1a;测试脚本中仅测试数据不一样&#xff…

6、使用本地模拟器调试项目

本地模拟器推荐内存为16G以上&#xff0c;最低内存要求8G&#xff08;比较卡顿&#xff09; 一、安装本地镜像 1、在开发工具的“文件”菜单中选择“设置” 2、在“设置”中选择“SDK”&#xff0c;在右侧勾选“System-image-phone”&#xff0c;点击“应用”开始安装 3、点击…

基于单片机的水位检测系统仿真设计

**单片机设计介绍&#xff0c; 基于单片机的水位检测系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机的水位检测系统仿真系统是一种用于模拟水位检测系统的工作过程&#xff0c;以验证设计方案的可行性和优…