Tornado模板转义处理

转自:http://www.qttc.net/201305320.html

tornado默认是转义所有字符,比较安全,但有时候我们的确需要把字符当做html来解析处理,因此我们需要做些处理。

示例:

main.py 代码:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

import tornado.ioloop

import tornado.web

class MainHandler(tornado.web.RequestHandler):

    def get(self):

        self.render(‘main.html‘,title = ‘<h1>Title</h1>‘)

application = tornado.web.Application([

    (r"/", MainHandler),

])

if __name__ == "__main__":

    application.listen(8888)

    tornado.ioloop.IOLoop.instance().start()

main.html 代码:


1

{{ title }}

执行结果:

默认把h1标签给转义,我们可以这么干使它不要转义

main.html 代码:


1

2

{% raw title %}

{{ title }}

raw 是不要转义

执行:

或者在头部这么定义

main.html


1

2

3

{% autoescape None %}

{{ title }}

{{ escape(title) }}

{% autoescape None %} 是整个文件都生效,但可以使用escape转义某一处

执行:

时间: 2024-11-05 06:06:13

Tornado模板转义处理的相关文章

Tornado模板

--------------------静态文件--------------------1.static_path:通过向web.Application类的构造函数传递一个名为static_path的参数来告诉Tornado从文件系统的一个特定位置提供静态文件app = tornado.web.Application([(r'/', IndexHandler)],static_path=os.path.join(os.path.dirname(file), "statics"),) 2

tornado模板引擎原理

前言 老师问小明:已经a=1, 求a+1的值. 小明挠挠头,思考后回答:老师,a+1的结果是2. 以上是一个非常简单的例子,实际上就是一个模板编译过程. a=1,表示一个命名空间(namespace)中的一项,该命名空间中存在一个名称(name)为a,其值为1.在python里面,命名空间可以用数据结构字典来表示. a+1,实际上是一个非常简单的模板.这个模板里面有且只有一条规则a+1.本博文中所说的模板,实际上更类似一份空白的数学考卷.这份数学考卷中,有很多类似上面老师问小明的题目. 学生解决

tornado 模板引擎

在tornado的模板引擎中,有两种方式,UImethod与UImodule 自定义方法 在模板中调用方法: tornado:与Django一样使用{{}},但是对于for循环之类,Django以{% endfor%}结尾,而tornado以{% end%}结尾.调用字典或者列表,tornado使用list[0],而Django以list.0使用方法不一样. 要想使用UImethod与UImodule,必须先早app里面的settings中注册: import uimethod as udimp

tornado模板源码小析

最近对flask的热情有点下降,对tornado有点高涨. 之前在知乎上回答过一个问题,如何理解 Tornado ?,我的回答如下: 1.高性能的网络库,这可以和gevent,twisted,libevent等做对. 提供了异步io支持,超时事件处理,在此基础上提供了tcpserver,httpclient,尤其是curlhttpclient, 在现有http客户端中肯定排第一.可以用来做爬虫,游戏服务器,据我所知业界已有使用tornado作为游戏服务器 2.web框架,这可以和django,f

web(二)---tornado模板

一. 接上两节, 修改index.py如下: 增加了/index.py/template和处理句柄. import tornado.ioloop import tornado.web class MainHandler(tornado.web.RequestHandler): def get(self): self.write("Hello, world") class TemplateHandler(tornado.web.RequestHandler): def get(self)

Python程序员必知的tornado模板引擎语法

本文和大家分享的主要是tornado中cookie 验证机制相关内容,一起来看看吧,希望对大家 学习tornado有所帮助. 处理过程简单来说就是验证密码之后服务器端(tornado) 返回带有  cookie  信息的  Set-Cookie header 给客户端 ,  之后客户端发起请求时会把此  cookie  放入  Cookie header  中发给服务器端. tornado 设置 cookie 首先是对 cookie  的变量进行设置 , Morsel  是含有几个特殊  key

Django 工程目录结构

你已经配置好你的Heroku账户(译者注:Heroku是一个老牌的免费云空间),并且创建了第一个Heroku应用,让我们来讨论一个非常重要的话题(虽然经常被忽略):Django工程结构管理. 概述 多数Django工程非常混乱.不幸的是默认的Django工程布局并没有对此有任何帮助,它过于简单对工程的管理导致在处理大的工程时带来很多维护性问题. 本文将帮助让你的工程有个合理的布局.致力于: 遵循最佳实践 让你的工程尽可能地直观--你(作为开发者)可以立即认出代码每个部分的作用 让你工程仍然保持规

Python Tornado初学笔记之表单与模板(一)

Tornado中的表单和HTML5中的表单具有相同的用途,同样是用于内容的填写.只是不同的是Tornado中的表单需要传入到后台,然后通过后台进行对模板填充. 模板:是一个允许嵌入Python代码片段的HTML文件. 一.简单模板示例: Python主程序: import os.path import tornado.httpserver import tornado.ioloop import tornado.options import tornado.web from tornado.op

Tornado之模板

知识点 静态文件配置 static_path StaticFileHandler 模板使用 变量与表达式 控制语句 函数 块 4.1 静态文件 现在有一个预先写好的静态页面文件 (下载静态文件资源), 我们来看下如何用tornado提供静态文件. static_path 我们可以通过向web.Application类的构造函数传递一个名为static_path的参数来告诉Tornado从文件系统的一个特定位置提供静态文件,如: app = tornado.web.Application( [(r