一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

django实现模板中的字符串文字和自动转义代码

时间:2020-03-31 编辑:袖梨 来源:一聚教程网

本篇文章小编给大家分享一下django实现模板中的字符串文字和自动转义代码,对大家的学习有一定的帮助,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。

下列文章中只考虑模板中的字符串,不考虑字符串中带标签的情况。

模板中的字符串文字不会自动转义,因为这里默认模板已经正确书写模板的内容。

{{ data|default:"This is a string literal." }}

如果我们在data不存在时,显示默认文字“3 < 2”,则代码如下:

{{ data|default:"3 < 2" }}

注意:不应该写成如下形式

{{ data|default:"3 < 2" }}

虽然,两种方式的页面显示结果一致,均为3 < 2,但是后者超出了模板作者的控制范围。

补充知识:Django view通过render将“字符串”传给页面插件时,值被截断问题

view.py中代码:

  # startTime = request.POST.get('startTime')
  startTime = '2019-10-10 01: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}
  return render(request, 'instance/binlog/show_analyze_binlog.html', context)

页面show.html


{#
#}
序号:
系统名:
开始时间:
结束时间:
{% for i in status %} {% endfor %}
{{ i }}

view.py中startTime = '2019-10-10 01:01:01' 传给页面form中name='startTime'时值被截断成'2019-10-10'

其原因是value={{ startTime}} 没加双引号

改成:

开始时间:


结束时间:


就不会截断。

热门栏目