django学习日志(模板的渲染过程)第八部分:字符串数据转义
django学习日志(模板的渲染过程)第八部分:字符串数据转义
- 语法
- 新建一个路由
- 自动抑制
- 修改文件WhatsTemplate\App\urls.py
urlpatterns = [
...url(r'^escape/', views.escape),
]
- 修改WhatsTemplate\WhatsTemplate\views.py
def escape(request):return render(request,'escape.html')
- 新建escape.html
- WhatsTemplate\templates\escape.html
- 给html传入数据
- WhatsTemplate\WhatsTemplate\views.py
def escape(request):content = '''<h1>宇宙巨匠哈某到此一游,汪汪!</h1><h1>宇宙巨匠阿某到此一游,汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪汪!</h1><h1>宇宙巨匠萨某到此一游,汪汪!</h1><script></script>'''data = {'content':content,}return render(request,'escape.html',context=data)
- 修改WhatsTemplate\templates\escape.html
- 没有进行转义
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title></head>
<body><h3>抑制</h3>
{{ content }}
<hr>
<h3>转义</h3>
{{ content }}</body><script type="text/javascript">var h1s = document.getElementsByTagName('h3')for(var i=0;i<h1s.length;i++){h1s[i].style.color = 'red'}
</script>
</html>
- 打开网址 http://127.0.0.1:8000/app/escape/
- 修改WhatsTemplate\WhatsTemplate\views.py
- 改为js代码
def escape(request):
...<script type="text/javascript">var h1s = document.getElementsByTagName('h1')for(var i=0;i<h1s.length;i++){h1s[i].style.color = 'red'}
</script>
...return render(request,'escape.html',context=data)
- 修改WhatsTemplate\templates\escape.html
- 对文本进行转义
<h3>safe转义</h3>
{{ content | safe}}
- 修改WhatsTemplate\templates\escape.html
- autoescape on
<h3>autoescape转义</h3><!--抑制转义-->
{% autoescape on %}
{{ content }}
{% endautoescape %}
<hr>
- autoescape off
<h3>autoescape转义</h3><!--允许转义-->
{% autoescape off %}
{{ content }}
{% endautoescape %}
<hr>
- 注:外部传入的文本初始时被抑制转义的,防止注入攻击
django学习日志(模板的渲染过程)第八部分:字符串数据转义相关推荐
- Django学习日志三:模型层
Django学习日志三:模型层1 日志一我们学习了Django的配置,详见: Django学习日志一Django的配置 日志二我们学习了创建第一个django项目,详见: Django学习日志二--创 ...
- django 学习 (二) 模板
1. 在应用的目录下创建templates目录,并创建一个html文件,比如my.html 2. 修改应用的views.py文件,将my.html文件反馈给请求,有以下几种写法 1) from dja ...
- django 学习 (四) 模板标签
模板标签实现html文件中的控制语句,模板标签语句用{% %}形式编写 假如在views.py文件中定义以下内容并传递给模板 my_dic = {'name':'zhang', 'age':'32' ...
- django 学习 (三) 模板变量
将views.py中的变量传递给html模板来显示,变量是以字典的形式传递给html模板文件显示的. 模板文件里以字典的{{健名}}来得到健值. 可传递的变量有以下几种形式 1. 基本变量 retur ...
- Django项目日志概述
Django项目日志概述 本文环境python3.5.2,Django版本1.10.2 Django项目中日志的实现 Django项目中使用的日志,使用了Python标准库中的logging模块进行实 ...
- Django学习~1
一.什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有 ...
- Django学习系列之五:Django 的模板的render替换render_to_string用法及templates模板查找路径顺序
Django学习系列之五:Django 的模板的render替换render_to_string用法及templates模板查找路径顺序 1.Django 的模板的render替换render_to_ ...
- Django框架学习 —9模板详解 -- DTL
作为Web框架,Django提供了模板,用于编写html代码,还可以嵌入模板代码更快更方便的完成页面开发,再通过在视图中渲染模板,将生成最终的html字符串返回给客户端浏览器 模板致力于表达外观,而不 ...
- 千锋Django学习笔记
千锋Django学习笔记 文章目录 千锋Django学习笔记 写在前面 1. MVC和MTV 2. Django简介 3. MTV简单流程 4. 和Model的简单对接 5. Model 6. Tem ...
- Django学习笔记(下)
文章目录 18 Template概念 19 模版语法 19.1 变量 19.2 点语法 19.3 标签 20 常见的请求状态码 21 view视图函数 21.1 概念及基础语法 21.2 内置函数 2 ...
最新文章
- SQLite可视化管理工具汇总
- ORACLE 等待事件的分类
- Python识别表格图_使用Python究竟可以做什么?下面是Python的3个主要应用
- 重构——解决过长参数列表(long parameter list)
- 三星“打法”:先模仿对手 再吃掉对手
- AliOS Things蓝牙协议栈及应用开发框架介绍
- linux下开启dhcp服务器配置,CentOS下DHCP服务器的配置
- rtt面向对象oopc——2.对象容器理解和rtt类的联系
- 什么是 Thrift(RPC)?一种接口描述语言和二进制通讯协议,用来定义和创建跨语言的服务
- 服务器虚拟化平台 可信云认证,100%满足规范,华为云Stack首批通过可信云虚拟化云平台最高等级认证...
- java并发包下的lock接口与syschronized关键字的区别
- Oracle | 初级-第一章 Oracle概述
- 深入浅出了解几种简单设计模式
- shazam 音频指纹 听歌识曲 原理(附代码)
- 细说php作者高洛峰免费收徒
- NATAPP安装和配置(附加NATAPP后台运行)
- 罗永浩和王自如的对质怎么看?
- 一款免费的WEB视频播放器Flowplayer
- 区域一体化电子病历系统管理源码 医院SOA架构 医院源码
- python爬易看网所有小说