django实现模板中的字符串文字和自动转义
本文只考虑模板中的字符串,不考虑字符串中带标签的情况。
模板中的字符串文字不会自动转义,因为这里默认模板的作者已经正确书写模板的内容。
{{data|default:"Thisisastringliteral."}}
如果我们在data不存在时,显示默认文字“3<2”,则代码如下:
{{data|default:"3<2"}}
注意:不应该写成如下形式
{{data|default:"3<2"}}
虽然,两种方式的页面显示结果一致,均为3<2,但是后者超出了模板作者的控制范围。
补充知识:Djangoview通过render将“字符串”传给页面插件时,值被截断问题
view.py中代码:
#startTime=request.POST.get('startTime') startTime='2019-10-1001:01:01' endTime=request.POST.get('endTime') hostname=d1.hostname ip=d1.ip port=d1.port user=d1.user password=d1.password cmd='/bin/python/home/db/mysql/scripts/analyze_binlog.py\''+str(startTime)+'\'\''+str(endTime)+'\'' result=operation(ip,port,user,password,cmd) context={'status':result,'id':id,'hostname':hostname,'startTime':startTime,'endTime':endTime} returnrender(request,'instance/binlog/show_analyze_binlog.html',context)
页面show.html
{##} 序号:
系统名:
开始时间:
结束时间:
{%foriinstatus%}
{%endfor%} {{i}}
view.py中startTime='2019-10-1001:01:01'传给页面form中name='startTime'时值被截断成'2019-10-10'
其原因是value={{startTime}}没加双引号
改成:
开始时间:
结束时间:
就不会截断。
以上这篇django实现模板中的字符串文字和自动转义就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。