python模板语言_django的模板语言

Django模板语言

1.基础语法:

return render(request,'qwe.html',{'obj':obj}),render的最后的字典可以以键值对的形式传入多个值,

在django模板中只用到两种符号

变量相关:{{变量名}}  逻辑相关:{% %}

1)变量相关:

a: 变量名有字母数字和下划线组成,(.)用来获取对象的属性值,ls.0 --> ls[0] dic.key --> dic[key]

注意事项:

.只能调用不带参数的方法

当模板系统遇到一个.时,会按照如下的顺序去查询:

1.在字典中查询  2.属性或则方法  3.数字索引

b: Filters:过滤器,用来修改变量的显示结果;

语法:{{value|filter_name:参数}} 管道符'|'前后不能添加空格,参数':'前后也没有,要想加上,必须加上引号

几个常用的过滤器:

default:如果value值没有传,就会显示默认值nothing

{{ value|default:'nothing' }}

注:在django项目里settings.py文件里的TEMPLATES的OPTIONS可以增加一个选项:string_if_invalid里设置跟default的作用一样;

filesizeformat:将值格式化为一个'人类可读的'文件尺寸(KB,MB,byte)

{{ obj.file_size|filesizeformat }}

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

{{ value|length }}

slice:切片,跟Python里的切片一样

{{ value|slice:'2:-1' }}

date:时间格式化(传入的对象为:datetime.datetime.now())

{{ value|date:'Y-m-d H:i:s'}}

save:django的模板中在往数据库提交数据时,会自动对一些不符合的数据(html标签或js代码等语法)进行转义,为了源html文件不被破坏,但有一些可能不需要转义,所以django用过滤器save来显示你确认过的安全的数据显示出来

{{ obj.ht_js|safe }}

'ht_js':''

这个js代码就会被执行

truncatewords:在6个数量的字后截取其后字体用三个点代替

{{ value|truncatewords:6 }}

cut:移除value所有的cut后面参数的字符串

{{ value|cut:' ' }}移除空格

timesince:传入的时间对象跟当前的时刻的时间的一个时间差,用于写多长时间之前

{{ value|timesince }}

timeuntil:当前时间对未来的时间的一个时间差,多长时间之后

{{ conference_date|timeuntil:from_date }}

c:自定义filter:自定义过滤器只是带有一个或两个位置参数的Python函数,所以不能用*args或**kwargs

创建filter的步骤:

在django项目中的app01下的文件夹中

创建一个templatetags包(package),在该包下创建一个py文件,来写自定义的filter函数

app01/templatetags/mytext--

#导入template

from django importtemplate#生成一个注册对象

register =template.Library()#装饰器(告诉django自定义了一个filter)

@register.filter()defadjust(value,arg):print(arg)return value + arg['name']

在html文件中导入使用:

#导入自定义filter文件,跟import类似

{% load mytext %}

#adjust是装饰器函数,后面参数可以传入一个对象

{{ obj.name|adjust:obj }}

注意:在创建一个filter对象时,都要重启一下

tags:

for循坏可用的一些参数:forloop本身是一个字典,属性用如下几项:

VariableDescription

forloop.counter

当前循环的索引值(从1开始)

forloop.counter0

当前循环的索引值(从0开始)

forloop.revcounter

当前循环的倒序索引值(从1开始)

forloop.revcounter0

当前循环的倒序索引值(从0开始)

forloop.first

当前循环是不是第一次循环(布尔值)

forloop.last

当前循环是不是最后一次循环(布尔值)

forloop.parentloop

本层循环的外层循环

for...empty

  • {% for user in user_list %}
  • {{ user.name }}{% empty %} 循环过程结束,没有符合的条件
  • 空空如也{% endfor %}

if,elif和else:

{% if user_list|length > 5 %}

七座豪华SUV

{% else %}

黄包车

{% endif %}

if语句支持and, or , == ,,<=,>=,in,not in,is,is not判断,但不支持连续判断

例如:a>b>c这是Python里可以实现,但是在模板语言里写连续判断格式: a>b and b>c

with:修改变量名称,重命名

{% with total=business.employees.count %}

{{ total }} employee{{ total|pluralize }}

{% endwith %}

csrf_token:

这个标签用于跨站请求伪造保护(当你开启一个服务的时候,别人也可以用自己的文件通过浏览器向你发送请求,有可能是恶意的)

所以django添加了csrf用来唯一确定是提交的表单是本页面发出的;

在页面(html文件)上form表单下写上

{% csrf_token %}

会在表单上添加隐藏的input框(里面是一个64位的随机数)

自定义simpletag:

和filter类似,都是在模板(html)中接收到数据时,可以对其过滤(操作,加功能,给模板变量加装饰器)

不同的是,filter只能接收1个或2个参数,而simpletag可以接收多个参数;

定义注册simple tag:

from django importtemplate#register:记录; 登记簿; 登记,注册; 自动记录器; vt. 登记

register =template.Library()

@register.simple_tagdef text(*args,**kwargs):print(args)return args,kwargs

使用自定义simple tag

{% load mytest %}

{% text list key1=dict%}

#传入两个对象,分别在装饰器中处理,然后返回给模板

改时间的配置:

1.settings中改   USE_L10N = False

2.DATETIME_FORMAT = 'Y-m-d H:i:s'

DATE_FORMAT = 'Y-m-d'   这时你的时间对象就会转为时间格式

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

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

相关文章

oreo另一个意思_记一次有意思的统计(部分大宗商品价格指数相关性统计)

最近闲来无事&#xff0c;对部分大宗商品近十年的价格涨幅做了个统计&#xff0c;发现有些有意思的现象&#xff1a;大多资产价格走势如果放到一个足够长得时间维度里&#xff0c;那其实整体走势是比较一致的&#xff1b;有些资产价格走势高度相关&#xff0c;但是在某个时间段…

android左右耳机声音大小不一样,AirPods左右两边声音大小不同怎么办 单侧无声和两侧音量不同解决方法...

AirPods连接 iPhone 后如果出现了左右两边声音大小不一样&#xff0c;或者单侧无声的问题&#xff0c;可能是软件导致的暂时性故障&#xff0c;也有可能是硬件问题。当耳机音量出现异常时&#xff0c;可以通过以下几种方式尝试恢复。单侧无声和两侧音量不同解决方法&#xff1a…

laravel 任务队列_Laravel5.5之事件监听、任务调度、队列

流程&#xff1a;1.1 创建eventphp artisan make:event UserLoginLoginController.php/*** The user has been authenticated.** param IlluminateHttpRequest $request* param mixed $user* return mixed*/protected function authenticated(Request $request, $user){eve…

pytorch微调bert_小版BERT也能出奇迹:最火的预训练语言库探索小巧之路

选自Medium作者&#xff1a;Victor Sanh机器之心编译参与&#xff1a;魔王过去一段时间&#xff0c;大模型层出不穷。在大家纷纷感叹「大力出奇迹」的时候&#xff0c;作为调用预训练语言模型最流行的库&#xff0c;HuggingFace 尝试用更少的参数量、更少的训练资源实现同等的性…

android 应用无法安装程序,朋友android设备无法安装我的Android应用程序,我甚至不能为我自己做...

我最近上传了我的android应用程序到市场https://market.android.com/details?idcom.DGNT&#xff0c;但我的朋友们不能将它安装在他们的设备上(说他们的手机不兼容)。该网站甚至说我自己的手机与我的应用程序不兼容&#xff0c;即使我已经通过eclipse编译了它&#xff0c;并成…

qsub 指定节点_PBS,QSUB常用命令

1、后台提交作业qsub语法: qsub [-a date_time] [-A account_string] [-e path] [-h] [-I] [-jjoin] [-k keep] [-l resource_list] [-m mail_options] [-nNode_allocation_Method [-L v1,[v2,[v3,[v4]]]]] [-M user_list] [-Nname] [-o path] [-p priority] [-q pool] [-r y|n…

if test 多条件_秒懂Python编程中的if __name__ == #39;main#39; 作用和原理

在大多数编排得好一点的脚本或者程序里面都有这段if __name__ main:1 这段代码的功能一个python的文件有两种使用的方法&#xff1a;第一是直接作为脚本执行&#xff0c;第二是import到其他的python脚本中被调用(模块重用)执行。因此if __name__ main: 的作用就是控制这两种情…

android复杂列表滑动卡顿,Android 列表滑动性能优化总结

列表滑动性能优化是一个老生常谈的问题&#xff0c;最近在做项目的时候又遇到了列表滑动卡顿的问题&#xff0c;我在经过多次思考和尝试后&#xff0c;终于找到了滑动卡顿的元凶&#xff0c;于是将经验总结下来。ViewHolder先说说最常规的ViewHolder。ViewHolder的出现是为了解…

php淘客发单_如何使用PHP的curl函数调用维易淘客接口

《如何使用PHP的curl函数调用维易淘客接口》要点&#xff1a;使用curl调用维易淘客接口高佣转链维易淘客接口是用GET方式调用的&#xff0c;直接用GET调用即可&#xff0c;以下用PHP为例&#xff1a;使用curl调用维易淘客接口高佣转链&#xff1a;$apihttp://api.vephp.com/hca…

python背景颜色怎么随机_Python中的随机颜色

我同意TigerhawkT3&#xff08;1&#xff09;你教授对pick_color()的实现是垃圾。但我不认为random.choice()&#xff0c;或者你教授滥用random.shuffle()的方式是最好的选择。两者的问题是&#xff0c;在连续调用时可以获得相同的颜色&#xff0c;这是在正方形内绘制正方形时不…

python 解决手机拍的书籍图片发灰的问题

老师给发的作业经常是手机拍的&#xff0c;而不是扫描&#xff0c;背景发灰&#xff0c;如果二次打印就没有看了&#xff0c;象这样&#xff1a; 如果使用photoshop 处理&#xff0c;有些地方还是扣不干净&#xff0c;不如python 做的好&#xff0c;处理后如下&#xff1a; 具体…

2016年cypher资源_2021-2027年中国鱿鱼行业市场供需规模及未来前景分析报告

报告类型&#xff1a;产业研究报告格式&#xff1a;电子版、纸介版、电子纸介出品单位&#xff1a;智研咨询官网链接&#xff1a;中国产业信息网 - 产业前景投资趋势门户-智研旗下产业信息咨询平台​www.chyxx.com报告链接&#xff1a;2021-2027年中国鱿鱼行业市场供需规模及未…

地面控制点的定义与作用_什么是地面塌陷

地面塌陷2020年1月13日&#xff0c;青海西宁市城中区一公交车站附近地面突然塌陷&#xff0c;一辆搭载乘客的公交车掉入坑中&#xff0c;致使9人遇难。2019年12月12日&#xff0c;厦门吕厝路口地铁1号线和2号线外的配套物业开发项目施工现场发生约500平方米地面塌陷&#xff0c…

html填满剩余空间,html – 标题,两侧填充剩余空间

我被要求创建这个标题,纯粹用css,它甚至可能吗&#xff1f;文本的背景需要保持透明,h2需要跨越任何容器的宽度,并且左右边框自动填充剩余空间.h2 {font-size:42px;line-height:48px;width:100%;overflow: hidden;&:before {content:;position:relative;padding-left:50px;p…

python代码自动生成器下载_Python代码生成器

iefans下载为用户提供的Python代码生成器是一款高效实用的多功能代码自动编辑软件&#xff0c;该软件采用Delphi语言开发&#xff0c;同时内置了大量的编程学习内容与百款实例代码&#xff0c;让用户能够使用Python代码生成器快速插入判断、流程控制、算法等重复性很高的架构&a…

animate动画案例_animate动画案例——小小购物狂

如今各平台小动画层出不穷&#xff0c;大部分这种二维动画都是animate或者flash做的&#xff0c;例如下面这种效果animate既可以将各种内容做成动画。既可以设计适合游戏、电视节目和 Web 的交互式动画。让卡通和横幅广告栩栩如生。也可以用来创作动画涂鸦和头像。并向电子学习…

男孩子不上学了学计算机要学历吗,十三岁男孩不上学,能学什么手艺?

十三岁男孩不上学,能学什么手艺?十三岁时的孩子,有些学校要求我们先上过义务教育再去学习,有些学校是允许十三岁就直接接受教育的,有些学校是对十三岁还在上半学的学生进行补习一下的。那么,十三岁男孩不上学,可以学什么手艺?其实,有很多孩子对自己在学校学习时未能掌握的知识…

iview select 怎么清空_如何解决iview 的select下拉框选项错位的问题,具体操作如下...

下面我就为大家分享一篇完美解决iview 的select下拉框选项错位的问题&#xff0c;具有很好的参考价值&#xff0c;希望对大家有所帮助。在使用iview的过程中&#xff0c;我遇到这样一个问题&#xff0c;在Model中使用select下拉框组件。但是当弹出框超过一屏需要滚动时&#xf…

numpy 拼接_数据分析-numpy的拼接与交换

1.数组的拼接import numpy as npt1np.arange(24).reshape((4,6))t2np.arange(100,124).reshape((4,6))print(t1)print("*"*50)print(t2)print("*"*50)#竖直拼接t3np.vstack((t1,t2))print(t3)print("*"*50)#水平拼接t4np.hstack((t1,t2))print(t…

在HTML标签中 lt h5 gt 表示,HTML lt;blockquotegt; 标签

HTML <blockquote> 标签2020-12-04定义和用法标签定义块引用。与 之间的所有文本都会从常规文本中分离出来&#xff0c;经常会在左、右两边进行缩进(增加外边距)&#xff0c;而且有时会使用斜体。也就是说&#xff0c;块引用拥有它们自己的空间。全局属性标签支持HTML中的…