最新要闻
- 专家建议WestConnex对内蒙古房地产价格产生长期积极影响
- 【独家焦点】合肥一景区举办发呆大赛奖金3000元:睡着也算、但有条件
- 追缴并罚款545.8万元!又一网络主播偷逃税款被查
- 当前速讯:武汉风筝节遇上大风天!巨型风筝把人“卷”上天
- 世界焦点!华为鸿蒙OS 3最新公测来了:支持荣耀15款手机、6年前的机型也有份
- 环球播报:锐龙7000X3D处理器连烧数起 主板厂商集体行动:AMD回应
- 西安地铁4月28日将迎来五一客流高峰 部分线路延长运营时间_全球热议
- 许婷律师联系方式_许婷
- 内地5月26日上映!《小美人鱼》新预告:女主被鲨鱼追杀-天天快资讯
- 给AI小姐姐留着 西数16TB硬盘到手1549元(非SMR)
- 5代都玩腻了 5月17日或公布《GTA6》新消息 期待吗? 当前热文
- 环球观热点:彻底放弃Win7!U盘软件Rufus发布4.0版本
- 视效大片!《变形金刚7:超能勇士崛起》确认引进内地:预计6月上映
- 四大会计师事务所排名百科(四大会计师事务所排名)
- 世界即时:台湾拚非核疯绿电 企业买高中培养风电人才
- 女子淄博买切糕2种口味称重仅6元火了!五一客流量爆满:喊话推荐其他山东城市
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
Django模板层 (变量分配 过滤器 标签 继承和导入 自定义过滤器、标签及inclusion_tag(了解))
目录
一、模板变量分配
定义
在后端变量的值通过模板语法传到前端
符号{{}}:主要与数据值相关{%%}:主要与逻辑相关
模板语法注意点:1.针对需要加括号调用的名字 django模板语法会自动加括号调用你只需要写名字就行2.模板语法的注释{##},前端浏览器是无法查看的,因为它要先在后端运行3.django的模板语法是自己写的 跟jinja2不一样,只能用句点符的方式点出来
模板语法两种传值方法
return render(request, "demo02.html", {"n1": name, "a1": age}) # 传值方式1:精准传值 不浪费资源 针对多资源的传递书写麻烦
return render(request,"demo02.html", locals()) # 传值方式2:将函数名称空间中所有的名字全部传递 名字过多并且不使用的情况下比较浪费资源
- 模板语法传值特性1.基本数据类型正常展示2.文件对象也可以展示并调用方法3.函数名会自动加括号执行并将返回值展示到页面上(不支持额外传参)4.类名也会自动加括号调用,对象则不用加括号也可以调用(除非用魔法)
ps:总结针对可以加括号调用的名字模板语法都会自动加括号调用
- 代码展示
前端
{{ f }}
{{ i }}
{{ s }}
{{ l }}
{{ d }}
{{ t }}
{{ se }}
{{ b }}
{{ f_obj }}
{{ f_obj.read }}
你看到了什么 快分享给我看看!!! {{ func1 }}
{{ MyClass }}
{{ obj }}
{{ obj.get_obj }}
{{ obj.get_cls }}
{{ obj.get_static }}
后端
def func(request): # python基本数据类型 f = 1.11 i = 666 s = "hello jason! say hello big baby ha ha ha" l = [11, 22, 33, 44] d = {"name": "jason", "age": 18} t = (11, 22, 33, 44) se = {11, 22, 33, 44} b = True # 文件对象 f_obj = open(r"D:\pythonProject03\djangoday04\今日内容.md", "rb") # 函数 def func1(): print("上午犯困 下午也犯困 晚上还犯浑") return "熬夜会上瘾" # 类 class MyClass(object): def get_obj(self): return "绑定给对象的方法" @classmethod def get_cls(cls): return "绑定给类的方法" @staticmethod def get_static(): return "静态方法" obj = MyClass()
页面效果
二、模板的过滤器
定义
模块语法自带的一些内置函数
语法
{{obj|filter__name:param}} 变量名字|过滤器名称:变量
default
如果一个变量是false或者为空,使用给定的默认值。否则,使用变量的值。例如:
{{ value|default:"nothing"}}
- length返回值的长度。它对字符串和列表都起作用。例如:如果 value 是 [‘a’, ‘b’, ‘c’, ‘d’],那么输出是 4。
{{ value|length }}
- filesizeformat将值格式化为一个 “人类可读的” 文件尺寸 (例如 "13 KB", "4.1 MB", "102 bytes", 等等)。例如:如果 value 是 123456789,输出将会是 117.7 MB
{{ value|filesizeformat }}
- date如果 value=datetime.datetime.now()
{{ value|date:"Y-m-d"}}
- slice如果 value=”hello world”,将会是llo worl
{{ value|slice:"2:-1"}}
- truncatechars如果字符串字符多于指定的字符数量,那么会被截断。截断的字符串将以可翻译的省略号序列(“…”)结尾。参数:要截断的字符数
{{ value|truncatechars:9}}
- safeDjango的模板中会对HTML标签和JS等语法标签进行自动转义,原因显而易见,这样是为了安全。但是有的时候我们可能不希望这些HTML元素被转义,比如我们做一个内容管理系统,后台添加的文章中是经过修饰的,这些修饰可能是通过一个类似于FCKeditor编辑加注了HTML修饰符的文本,如果自动转义的话显示的就是保护HTML标签的源文件。为了在Django中关闭HTML的自动转义有两种方式,如果是一个单独的变量我们可以通过过滤器“|safe”的方式告诉Django这段代码是安全的不必转义。比如:
value="点击"{{ value|safe}}from django.utils.safestring import mark_saferes = mark_safe("HELLO WORLD
")
- 代码展示
前端
{{ i|add:10 }}
{{ s|add:"baby" }}
{{ l|length }}
{{ s|slice:"1:4" }}
{{ value|slice:"2:-1"}}
{{ s|truncatechars:5 }}
{{ s|truncatewords:3 }}
{{ ctime|date:"Y年-m月-d日 H时:i分:s秒 " }}
{{ file_size|filesizeformat }}
{{ h1|safe }}
{{ s1|safe }}
后端
def func(request): from datetime import date,datetime ctime = datetime.today() import os file_size = 424232423423432 h1 = "哈哈哈哈
" s1 = "<script>confirm(123)</script>" return render(request, "funcPage.html", locals())
页面效果
三、模板之标签
- if标签在html页面if ,然后tab键补全语法
{% if 条件1(可以自己写也可以用传递过来的数据) %}今天又是周三了
{% elif 条件2(可以自己写也可以用传递过来的数据) %}百日冲刺
{% else %}没多少时间了!
{% endif %}
- for标签在html页面for ,然后tab键补全语法
{% for k in t1 %}{% if forloop.first %}这是我的第一次循环{{ k }}
{% elif forloop.last %}这是我的最后一次循环{{ k }}
{% else %}这是中间循环{{ k }}
{% endif %}{% empty %}你给我传的数据是空的无法循环取值(空字符串、空列表、空字典)
{% endfor %}
- forloop关键字
# 遍历字典# 字典的三剑客keys values itemsforloop.counter The current iteration of the loop (1-indexed) 当前循环的索引值(从1开始)forloop.counter0 The current iteration of the loop (0-indexed) 当前循环的索引值(从0开始)forloop.revcounter The number of iterations from the end of the loop (1-indexed) 当前循环的倒序索引值(从1开始)forloop.revcounter0 The number of iterations from the end of the loop (0-indexed) 当前循环的倒序索引值(从0开始)forloop.first True if this is the first time through the loop 当前循环是不是第一次循环(布尔值)forloop.last True if this is the last time through the loop 当前循环是不是最后一次循环(布尔值)forloop.parentloop 本层循环的外层循环
ps: django模板语法取值操作>>>:只支持句点符,句点符既可以点索引也可以点键
d1 = {"name": "jason", "age": 18, "hobby": ["read", "music", {"a1": "haha", "a2": "heihei"}]}{{ d1.hobby.2.a1 }}
- 起别名复杂数据获取之后需要反复使用可以起别名
{% with d1.hobby.2.a1 as h %} {{ h }}{% endwith %}
四、自定义过滤器、标签及inclusion_tag(了解)
- 前期准备工作如果想要自定义一些模板语法 需要先完成下列的三步走战略1.在应用下创建一个名字必须叫templatetags的目录2.在上述目录下创建任意名称的py文件3.在上述py文件内先编写两行固定的代码
from django import templateregister = template.Library()
- 自定义过滤器(最大只能接收两个参数)
@register.filter(name="myadd")def func1(a, b): return a + b
目前编辑的页面代码
{% load mytags %} # 加载自己创建的py文件{{ i|myadd:1 }}
- 自定义标签(参数没有限制)
@register.simple_tag(name="mytag")def func2(a, b, c, d, e): return f"{a}-{b}-{c}-{d}-{e}"
目前编辑的页面代码
{% load mytags %} # 加载自己创建的py文件{% mytag "jason" "kevin" "oscar" "tony" "lili" %}
- 自定义inclusion_tag(局部的html代码)
调用函数,在一个自己新建的空html文件中执行,执行完后再塞进需要用的html页面
@register.inclusion_tag("menu.html",name="mymenu")def func3(n): html = [] for i in range(n): html.append("第%s页 "%i) return locals()
新建的借助menu.html页面代码
{% for liStr in html %} {{ liStr|safe }} {% endfor %}
目前编辑的页面代码
{% load mytags %} # 加载自己创建的py文件{% mymenu 20 %}
五、模板的继承和导入
模板的继承(重要)
定义
多个页面有很多相似的地方 我们可以采取下列方式
- 方式1:传统的复制粘贴
- 方式2:模板的继承
1.在模板中使用block划定子板以后可以修改的区域 {% block 区域名称 %}继承的旧代码区域 {% endblock %} 2.子板继承模板 {% extends "home.html" %} # 首先要先导入母版 {% block 区域名称 %} 继承的新代码区域 {% endblock %}补充:子板也可以继续使用模板的内容 {{ block.super }}
ps:模板中至少应该有三个区域,分别是页面内容区、css样式区、js代码区
模板的导入(了解)
定义
将某个html的部分提前在一个空的html页面写好 之后很多html页面都想使用就可以导入,在需要导入的地方
{% include "myform.html" %}
直接上代码,以后可以粘贴复制
- 母板
Title {# <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js"></script>#} {# #} {# <script src="bootstrap-3.4.1-dist/js/bootstrap.js"></script>#} {% load static %} <script src="{% static "jquery.min.js" %}"></script> <script src="{% static "bootstrap-3.4.1-dist/js/bootstrap.min.js" %}"></script> - Dapibus ac facilisis in
- Cras sit amet nibh libero
- Porta ac consectetur ac
- Vestibulum at eros
{% block content %} {% endblock %}
- 子板1
{% extends "Monpage.html" %}{% block css %} {% endblock %}{% block content %} 登录页面
{% include "daoru.html" %} {% endblock %}{% block js %} <script>alert("注册页面")</script>{% endblock %}
- 子板2
{% extends "Monpage.html" %}{% block css %} {% endblock %}{% block content %} 注册页面
{% include "daoru.html" %} {% endblock %}{% block js %} <script>alert("注册页面")</script>{% endblock %}
- 母板页面效果
- 子板页面效果
关键词:
重磅!阿里云云原生合作伙伴计划全新升级:加码核心权益,与伙伴共赢新未来_当前滚动
专家建议WestConnex对内蒙古房地产价格产生长期积极影响
【独家焦点】合肥一景区举办发呆大赛奖金3000元:睡着也算、但有条件
追缴并罚款545.8万元!又一网络主播偷逃税款被查
当前速讯:武汉风筝节遇上大风天!巨型风筝把人“卷”上天
世界焦点!华为鸿蒙OS 3最新公测来了:支持荣耀15款手机、6年前的机型也有份
环球播报:锐龙7000X3D处理器连烧数起 主板厂商集体行动:AMD回应
西安地铁4月28日将迎来五一客流高峰 部分线路延长运营时间_全球热议
天天关注:【MAUI Blazor踩坑日记】3.Windows标题栏自定义颜色,运行时改变颜色
ThingsBoard 前端项目内置部件开发
记录-Vue移动端日历设计与实现
今日热门!iOS描述文件(.mobileprovision)一键申请
vue-router3.x和vue-router4.x相互影响的问题记录
许婷律师联系方式_许婷
解锁五一新玩法——第三站:黑龙江·森林氧吧
内地5月26日上映!《小美人鱼》新预告:女主被鲨鱼追杀-天天快资讯
给AI小姐姐留着 西数16TB硬盘到手1549元(非SMR)
5代都玩腻了 5月17日或公布《GTA6》新消息 期待吗? 当前热文
环球观热点:彻底放弃Win7!U盘软件Rufus发布4.0版本
视效大片!《变形金刚7:超能勇士崛起》确认引进内地:预计6月上映
四大会计师事务所排名百科(四大会计师事务所排名)
Java中关于String类以及字符串拼接的问题 世界新动态
低代码是开发的未来,还是只能解决边角问题的鸡肋? 全球热点评
环球播报:有奖征文丨【玩转Cloud Studio】第二季来啦!
ReactNative 桥接原生原子组件(一) 今日热闻
Java程序部署成Windows服务-全球独家
世界即时:台湾拚非核疯绿电 企业买高中培养风电人才
天天观速讯丨【财经分析 】钢厂纷纷减产,钢价能否止跌?
女子淄博买切糕2种口味称重仅6元火了!五一客流量爆满:喊话推荐其他山东城市
中国广电合约机明天上市:iPhone 14最低2586元 全面支持5G|最资讯
并非永久关停!天涯社区官方:会回来的 天天百事通
环球滚动:一加功不可没!OPPO成为中国手机市场Q1安卓销量第一名
速看:杭州、合肥土拍又“火爆”了
患者反复腹痛7年!南华医院一招肠菌移植显奇效-视讯
读书笔记丨远程服务调用和RESTful,如何分析和抉择?
国内公路编码规则
收评:创业板指收涨1.54% 新能源赛道大幅反弹
湖南工学院与衡阳师范学院联合举办2023年“一校一书”阅读推广暨读书节活动开幕式 焦点消息
售价接近110万 网友绘制比亚迪仰望U8改装版:高低也得整一辆|天天热消息
微头条丨安卓之光!小米连续做了4代Ultra:米粉评价“方向对了”
要闻:研究表明咖啡+茶效果更佳:可降低死亡风险 但要适量
热点聚焦:买硬座票跑卧铺睡男子引发热议!他还教育乘务员:提高服务意识
主摄硬件无升级!三星Galaxy S24 Ultra将依靠软件优化拍摄质量
楚天科技:一次性耗材领域已完成质量体系认证,目前已有销售订单
MySQL 安装及配置 当前快看
四级英语冲刺高频500词
在毫秒量级上做到“更快”!DataTester 助力飞书提升页面秒开率
[译]在C#中使用IComparable和IComparer接口 每日短讯
(二)asyncio的简单使用,python异步高效处理数据,asyncio.get_event_loop(),loop.run_until_complete(
全球看点:4月26日西南地区乙醇市场行情震荡整理
大范围降雨将重启 暴雨袭击6省:覆盖五一假期 环球即时看
特斯拉Autopilot每917万公里才一起事故:比人驾安全性高773% 世界新动态
旅美大熊猫“丫丫”将于当地4月26日归国:身体健康状态相对平稳
三星Exynos 2400回归!性能爆发 剑指高通骁龙8 Gen3-世界快讯
世界视点!撕掉油腻 三重功效:凯迪克男士洗面奶280g装19.9元
天天观天下!剪窗花的来历和故事_剪窗花的来历
市场监管总局:对明显违法违规的主播和商家要依法严厉处罚-全球最资讯
旅游不怕价格刺客!淘宝上线海淘“外挂”:拍照找同款比价 热点聚焦
烧烤火出圈 淄博致游客的一封信:客流量已超出接待能力-天天微头条
悲痛!一名8岁女孩脸部遇手机爆炸后身亡 官方正调查
接单日记(一):理解浮点数运算的误差
物业业主联手助力孩子圆梦
俞敏洪:猪周期与人生周期相似 坚守最可贵
全球微动态丨寿司店疑现被煮熟蓝环章鱼 店家要求爆料网友删博:市监局已介入
Web3来了!蚂蚁链宣布开源跨链技术:数字资产互联互通
微软将以690亿美元收购动视暴雪:有望于本周获批|当前热闻
全面实行不动产统一登记制,房产税真的要来了? 全球要闻
【环球速看料】从数据库查询权限信息与自定义失败处理
每日观点:【Excel统计分析插件】上海道宁为您提供统计分析、数据可视化和建模软件——Analyse-it
亿级日活业务稳如磐石,华为云CodeArts PerfTest发布
深入思考右值引用
看点:Java中抽象类和接口的区别?
世界即时:宿州:全市采血点无休 库存现缺A型、o型血
传统车企掀桌子!20.89万起的别克E5太香了:累计订单已超8000份 每日焦点
小鹏P7停车礼让 随后看呆:老奶奶5秒跑过斑马线还竖大拇指-世界微速讯
手机创史上最大降幅 回收成香饽饽:“暴利”超乎想象 焦点消息
天天微头条丨年轻人的首台超联接笔记本 华为MateBook D 14开卖 首销购机享福利
五一小长假来了!滴滴宣布发2亿司机补贴:假期出车流水加速
dota如何踢人?dota怎么设置快捷键?
今日视点:4月26日浙江蓝苏氟化工氢氟酸价格暂稳
半成品加工是什么意思?半成品加工需要办什么证件?
nba fmvp是什么意思?fmvp是怎么评出来的?
50米自由泳世界纪录是多少?50米自由泳一二三级运动员标准
诺基亚5320当年多少钱?诺基亚5320手机参数
苹果一体机怎么开机?苹果一体机电脑型号大全列表
诺基亚820怎么连接电脑?诺基亚820手机参数
当前观点:使用pycuda替换字符串,使用cuda替换字符串
python 使用selenium 不开启浏览器
今日热议:C# 获取系统DPI缩放比例以及分辨率大小
TF-GNN踩坑记录(四) 全球报道
CentOS搭建squid正向代理|当前热门
全球即时:据说,有一群AI数字人将在AWE展会觉醒......
增城是哪里的城市?增城旅游必去十大景点
联通iphone合约机划算吗?联通iphone语音信箱怎么关闭?
电信网络模式有哪几种?电信网络模式怎么设置?
【金融街发布】财政部:3月全国发行地方政府债券8900亿元
守住“头顶上的安全”, 长征镇加强房屋高坠隐患排查整治|当前时讯
微信支付支持数字人民币支付了:视频号、小程序可用
【世界新视野】丰田社长体验中国顶级豪车红旗L5:满脸堆笑、不住称赞
99年女子疑过度劳累宿舍猝死 公司:逝者是临时工