计算机基础知识53

模板之过滤器

# HTML被直接硬编码在 Python代码之中,Django的 模板系统(Template System)

# 过滤器给我们提供的有六十多个,但是我们只需要掌握10个以内即可
         过滤器名称就是函数名

# 语法:
{{ obj|filter__name:param }}     变量名字|过滤器名称:变量

default:如果一个变量是false或者为空,使用给定的默认值,否则使用变量的值

length:返回值的长度,对字符串和列表都起作用

filesizeformat:将值格式化为一个 “人类可读的” 文件尺寸   #  '13 KB', '4.1 MB'

date:日期格式

slice:切片

truncatechars:如果字符串字符多于指定的字符数量,那么会被截断,省略号序列(“…”)结尾

safe:告诉Django这段代码是安全的不必转义

# views.py
from django.shortcuts import render

# Create your views here.
def index(request):
    a = False
    l = [1,2,3,4,5]
    size = 43434343434342
    import datetime
    ctime = datetime.datetime.now()
    value = 'helloworld'

    from django.utils.safestring import mark_safe
    # 有很多时候前端的代码也可以在后端处理
    s1 = mark_safe('<h1>hello</h1>')
    return render(request,'index.html',locals())
# index.html
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
    <link rel="stylesheet" href="bootstrap-3.4.1-dist/css/bootstrap.min.css">
    <script src="bootstrap-3.4.1-dist/js/bootstrap.min.js"></script>
</head>
<body>
{{ a|default:'hello' }}
{{ l|length }}
{{ size| filesizeformat}}
{{ ctime| date:"Y-m-d"}}
{{ value| slice:'2:-1'}}
{{ s1|safe }}
</body>
</html>

# 其它过滤器(了解)

upper	  以大写方式输出
add	      给value加上一个数值
addslashes	单引号加上转义号
capfirst	第一个字母大写
center	    输出指定长度的字符串,把变量居中
cut	        删除指定字符串
date	    格式化日期
default	    如果值不存在,则使用默认值代替
default_if_none	     如果值为None, 则使用默认值代替
dictsort	         按某字段排序,变量必须是一个dictionary
dictsortreversed	 按某字段倒序排序,变量必须是dictionary
divisibleby	         判断是否可以被数字整除
escape	             按HTML转义,比如将”<”转换为”&lt”
filesizeformat	增加数字的可读性,转换结果为13KB,89MB,3Bytes等
first	        返回列表的第1个元素,变量必须是一个列表
floatformat	    转换为指定精度的小数,默认保留1位小数
get_digit	    从个位数开始截取指定位置的数字
join	        用指定分隔符连接列表
length	        返回列表中元素的个数或字符串长度
length_is	检查列表,字符串长度是否符合指定的值
linebreaks	用/或/标签包裹变量
linebreaksbr	用/标签代替换行符
linenumbers	    为变量中的每一行加上行号
ljust	        输出指定长度的字符串,变量左对齐
lower	        字符串变小写
make_list	将字符串转换为列表
pluralize	根据数字确定是否输出英文复数符号
random	    返回列表的随机一项
removetags	删除字符串中指定的HTML标记
rjust	    输出指定长度的字符串,变量右对齐
slice	    切片操作, 返回列表
slugify	    在字符串中留下减号和下划线,其它符号删除,空格用减号替换
stringformat	字符串格式化,语法同python
time	        返回日期的时间部分
timesince	以“到现在为止过了多长时间”显示时间变量
timeuntil	以“从现在开始到时间变量”还有多长时间显示时间变量
title	    每个单词首字母大写
truncatewords	       将字符串转换为省略表达方式
truncatewords_html	   同上,但保留其中的HTML标签
urlencode	           将字符串中的特殊字符转换为url兼容表达方式
urlize	               将变量字符串中的url由纯文本变为链接
wordcount	           返回变量字符串中的单词数

模板之for标签

# 标签看起来像是这样的: {% tag %}
# 标签比变量更加复杂:一些在输出中创建文本,一些通过循环或逻辑来控制流程,一些加     载其后的变量将使用到的额外信息到模版中。
# 一些标签需要开始和结束标签 (例如{% tag %} ...标签 内容 ... {% endtag %})

for标签

{% for person in person_list %}
    <p>{{ person.name }}</p>
{% endfor %}
#可以利用{% for obj in list reversed %}反向完成循环。

遍历一个字典:

{% for key,val in dic.items %}
    <p>{{ key }}:{{ val }}</p>
{% endfor %}

{% for foo in d.keys %}
    <p>{{ foo }}</p>
{% endfor %}

{% for foo in d.values %}
    <p>{{ foo }}</p>
{% endfor %}

{% for foo in d.items %}
    <p>{{ foo }}</p>
{% endfor %}

注:循环序号可以通过{{forloop}}显示

        forloop.counter           当前循环的索引值(从1开始)
        forloop.counter0         当前循环的索引值(从0开始)
        forloop.revcounter        当前循环的倒序索引值(从1开始)
        forloop.revcounter0      当前循环的倒序索引值(从0开始)
        forloop.first                   当前循环是不是第一次循环(布尔值)
        forloop.last                   当前循环是不是最后一次循环(布尔值)
        forloop.parentloop        本层循环的外层循环

for … empty:以便在给出的组是空的或者没有被找到时,可以有所操作。

{% for person in person_list %}
    <p>{{ person.name }}</p>
{% empty %}
    <p>sorry,no person here</p>
{% endfor %}

模板之if 标签和with

if标签

#  {% if %}会对一个变量求值,如果它的值是True(存在、不为空、且不是boolean类型的false值)对应的内容块会输出

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

{% if num > 100 or num < 0 %}
    <p>无效</p>
{% elif num > 80 and num < 100 %}
    <p>优秀</p>
{% else %}
    <p>凑活吧</p>
{% endif %}

with标签

#  使用一个简单地名字缓存一个复杂的变量,当你需要使用一个“昂贵的”方法(比如访问数据库)很多次的时候是非常有用的

d = {'username':'kevin','age':18,'info':'这个人有点意思','hobby':[111,222,333,{'info':'NB'}]}

# with起别名
{% with d.hobby.3.info as nb  %}
    <p>{{ nb }}</p>
    在with语法内就可以通过as后面的别名快速的使用到前面非常复杂获取数据的方式
    <p>{{ d.hobby.3.info }}</p>
{% endwith %}

{% with total=business.employees.count %}
    {{ total }} employee{{ total|pluralize }}
{% endwith %}
不要写成as

模板的继承和导入

# 语法:{% include '模版名称' %}  如:{% include 'adv.html' %}

{% block css %}
    <style>
        h1{
            color: red;
        }
    </style>
{% endblock %}


{% block js %}
    <script>
        alert('login')
    </script>
{% endblock %}

{% include 'haha.html' %}

标题

1、

2、

3、

标题

1、

2、

3、

标题

1、

2、

3、

标题

1、

2、

3、

标题

1、

2、

3、

标题

1、

2、

3、

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

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

相关文章

Android 启动优化案例-WebView非预期初始化排查

作者&#xff1a;邹阿涛涛涛涛涛涛 去年年底做启动优化时&#xff0c;有个比较好玩的 case 给大家分享下&#xff0c;希望大家能从我的分享里 get 到我在做一些问题排查修复时是怎么看上去又low又土又高效的。 1. 现象 在我们使用 Perfetto 进行app 启动过程性能观测时&#…

亚里士多德的思想统治西方世界,实体论证明人不是猪

苏格拉底、柏拉图、亚里士多德&#xff0c;并称古希腊三贤。 公元前384年&#xff0c;亚里士多德出生在马其顿的奴隶主家庭&#xff0c;父亲是马其顿国王腓力二世的宫廷御医。 公元前367年&#xff0c;亚里士多德迁居到雅典&#xff0c;进入柏拉图学园&#xff0c;跟随柏拉图…

什么是自动化测试框架?

无论是在自动化测试实践&#xff0c;还是日常交流中&#xff0c;经常听到一个词&#xff1a;框架。之前学习自动化测试的过程中&#xff0c;一直对“框架”这个词知其然不知其所以然。 最近看了很多自动化相关的资料&#xff0c;加上自己的一些实践&#xff0c;算是对“框架”…

Python 获取北上广深历史天气数据并做数据可视化

嗨喽&#xff0c;大家好呀~这里是爱看美女的茜茜呐 知识点: 动态数据抓包 requests发送请求 结构化非结构化数据解析 开发环境: python 3.8 运行代码 pycharm 2022.3.2 辅助敲代码 专业版 requests 发送请求 pip install requests parsel 解析数据 pip install parsel …

golang学习笔记——类型转换

Go 语言类型转换 将整型转换为浮点型&#xff1a; var a int 10 var b float64 float64(a)将字符串变量 str 转换为整型变量 num var str string "10" var num int num, _ strconv.Atoi(str)注意&#xff0c;strconv.Atoi 函数返回两个值&#xff0c;第一个是转…

JavaWeb Day10 案例-部门管理

目录 一、查询部门 &#xff08;一&#xff09;需求 &#xff08;二&#xff09;思路 &#xff08;三&#xff09;查询部门 &#xff08;四&#xff09;、前后端联调 二、删除 &#xff08;一&#xff09;需求 &#xff08;二&#xff09;思路 &#xff08;三&#xf…

zabbix之邮箱告警,钉钉告警,电话告警

安装zabbix的服务器 zabbix-server 192.168.231.219 zabbix-agent 192.168.231.217 &#xff0c;已安装nginx 前提 Zabbix告警是指当监控项的值超过了预设的阈值时&#xff0c;Zabbix会向管理员发送告警信息&#xff0c;以便管理员及时处理问题。 浏览器访问 192.168.231.219…

肝了一周,整理了Python 从0到1学习路线(附思维导图和PDF下载)

前段时间&#xff0c;我们陆续分享了一些关于Python基础知识&#xff0c;以及现在比较流行的Python各领域的学习知识&#xff0c;后台有很多小伙伴反馈&#xff0c;想要系统的自学Python&#xff0c;希望我们可以提供一个框架&#xff0c;方便作为参考&#xff0c;学习Python。…

Using Definition View 使用定义视图

You use Definition view to create definitions within a defined hierarchical structure, in which nodes represent the definitions. A node is the visual representation of a section, step, or action that you can select, collapse,modify, and so on. 您可以使用“…

找风景视频素材,就上这5个网站。

找风景视频素材那一定要上这6个网站&#xff0c;免费下载&#xff0c;赶紧收藏&#xff01; 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky 菜鸟图库网素材非常丰富&#xff0c;网站主要还是以设计类素材为主&#xff0c;高清视频素材也很多&#xff0c;像风景…

网站分类seo怎么优化(如何调整有利于SEO排名)

网站分类seo怎么优化&#xff08;如何调整有利于SEO排名&#xff09; 这期分享一篇关于网站seo优化中关于网页分类排名优化的文章&#xff0c;看看原文来自 蝙蝠侠IT &#xff0c;原文标题网站分类&#xff0c;没有SEO标题&#xff0c;怎么办的文章介绍。 理想与现实总是充满矛…

学c语言可以过CCT里的c++吗?

学习 C 语言可以为学习 C 奠定一些基础&#xff0c;但它们是不同的语言&#xff0c;有各自独特的特点和用途。最近很多小伙伴找我&#xff0c;说想要一些c语言的资料&#xff0c;然后我根据自己从业十年经验&#xff0c;熬夜搞了几个通宵&#xff0c;精心整理了一份「c语言资料…

Linux控制---进程程序替换

前言&#xff1a;前面我们学洗了Linux进程退出的相关知识&#xff0c;了解了什么是进程退出&#xff0c;已经进程等待的相关话题&#xff0c;今天&#xff0c;我们来学习Linux中的进程程序替换&#xff0c;进程程序替换在Linux中可以用于实现新程序的启动、程序升级、多进程程序…

利用Vue+Echarts完成可视化任务

文章目录 任务一&#xff1a;用柱状图展示消费额最高的省份&#xff08;一&#xff09;提出任务&#xff08;二&#xff09;准备工作1、利用postman访问接口数据2、安装node.js3、输入更换镜像源为淘宝源4、清除npm缓存5、安装vue脚手架6、创建vue项目7、启动vue项目 任务一&am…

C语言判断闰年(ZZULIOJ1028: I love 闰年!)

题目描述 根据一个年份&#xff0c;判断是否是闰年。 输入&#xff1a;输入为一个整数&#xff0c;表示一个年份。 输出&#xff1a;如果是闰年&#xff0c;输出"Yes"&#xff0c;否则输出"No"。输出单独占一行。 样例输入 Copy 2012 样例输出 Copy Yes 分…

UE5 - UI Material Lab 学习笔记

1、学习资料收集 UI Material Lab : https://www.unrealengine.com/marketplace/zh-CN/product/ui-material-lab 视频1&#xff1a;https://www.bilibili.com/video/BV1Hm4y1t7Kn/?spm_id_from333.337.search-card.all.click&vd_source707ec8983cc32e6e065d5496a7f79ee6 视…

关闭RecyclerView惯性滚动,以及多个RecyclerView在嵌套滚动中的注意事项

前言&#xff1a; 当前RecyclerView 下拉到顶部 或者 上拉到底部时&#xff0c;虽然滚动列表停止了&#xff0c;但惯性任务并没有结束&#xff0c;一些特殊需求可能受到影响&#xff0c;需要手动停止。 1. RecyclerView源码 调用 rv.stopScroll() 停止&#xff1b; 2. Recycl…

网工内推 | 急聘网络运维,周末双休,厂商认证优先

01 湖北华特信息技术有限公司 招聘岗位&#xff1a;网络运维工程师&#xff08;双休急聘&#xff09; 职责描述&#xff1a; 1、 负责局域网交换机、路由器、防火墙等设备维护&#xff1b; 2、熟悉OSPF动态路由协议&#xff0c;有实施或维护经验&#xff1b; 3、 熟悉网络架构…

Java方法中不使用的对象应该手动赋值为NULL吗?

在java方法中&#xff0c;不使用的对象是否应该手动赋值为null&#xff1f;我们先来通过一个示例看一下。 垃圾回收示例一 public class GuoGuoTest {public static void main(String[] args) {byte[] placeholder new byte[64 * 1024 * 1024];System.gc();} } 上面代码向内…

Radiology 谈人工智能在放射学领域的10个预测方向 [文献阅读]

人工智能(AI)和信息学正在改变放射学。十年前&#xff0c;没有哪个专家会预测到今天放射人工智能行业的蓬勃发展&#xff0c;100多家人工智能公司和近400种放射人工智能算法得到了美国食品和药物管理局(FDA)的批准。 不到一年前&#xff0c;即使是最精明的预言家也不会相信这些…