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

脚本专栏 发布日期:2024/10/22 浏览次数:1

正在浏览:django实现模板中的字符串文字和自动转义

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

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

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

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

{{ data|default:"3 &lt; 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

</script>
{#<div class="ibox-title">#}
 <form id="show_binlog_detail" name="show_binlog_detail" action="" method = 'post' >
 序号:<input type="text" name="id" value={{ id }}><br>
 系统名:<input type="text" name="hostname" value={{ hostname }} ><br>
 开始时间:<input type="text" name="startTime" maxlength="19" value= {{ startTime }}><br>
 结束时间:<input type="text" name="endTime" value= {{ endTime }} ><br>
 <input type="button" id="show_binlog_detail" onclick="submitSelet('show_binlog_detail')" value="分析" />
 </form>
<table>
 {% for i in status %}
  <tr>
  <td>{{ i }}</td>
  </tr>
 {% endfor %}
</table>

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

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

改成:

开始时间:

<input type="text" name="startTime" maxlength="19" value= "{{ startTime }}" ><br>

结束时间:

<input type="text" name="endTime" value= "{{ endTime }}" ><br>

就不会截断。

以上这篇django实现模板中的字符串文字和自动转义就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?