-
函数
static_url() Tornado模板模块提供了⼀个叫作static_url的函数来⽣成静态⽂件⽬录下⽂件的 URL。如下⾯的示例代码 <link rel="stylesheet" href="{{ static_url("style.css") }}"> 这个对static_url的调⽤⽣成了URL的值,并渲染输出类似下⾯的代码: <link rel="stylesheet" href="/static/style.css?v=ab12"> 优点: static_url函数创建了⼀个基于⽂件内容的hash值,并将其添加到URL末尾 (查询字符串的参数v)。这个hash值确保浏览器总是加载⼀个⽂件的最新版 ⽽不是之前的缓存版本。⽆论是在你应⽤的开发阶段,还是在部署到⽣产环境 使⽤时,都⾮常有⽤,因为你的⽤户不必再为了看到你的静态内容⽽清除浏览 器缓存了。 另⼀个好处是你可以改变你应⽤URL的结构,⽽不需要改变模板中的代码。例 如,可以通过设置static_url_prefix来更改Tornado的默认静态路径前 缀/static。如果使⽤static_url⽽不是硬编码的话,代码不需要改变。
<!DOCTYPE html> <html> <head> <title>新建房源</title> </head> <body> <form method="post"> <textarea name="text"></textarea> <input type="submit" value="提交"> </form> {{text}} </body> </html>
class NewHandler(RequestHandler): def get(self): self.render("new.html", text="") def post(self): text = self.get_argument("text", "") print text self.render("new.html", text=text)
我们查看⻚⾯源代码,发现<、>、"等被转换为对应的html字符。 <script>alert("hello!");</script> 这是因为tornado中默认开启了模板⾃动转义功能,防⽌⽹站受到恶意攻击。 我们可以通过raw语句来输出不被转义的原始格式,如: {% raw text %} 注意:在Firefox浏览器中会直接弹出alert窗⼝,⽽在Chrome浏览器中,需要 set_header("X-XSS-Protection", 0) 若要关闭⾃动转义,⼀种⽅法是在Application构造函数中传 递autoescape=None,另⼀种⽅法是在每⻚模板中修改⾃动转义⾏为,添加如下 语句: {% autoescape None %} escape() 关闭⾃动转义后,可以使⽤escape()函数来对特定变量进⾏转义,如: {{ escape(text) }}
Tornadao—模板语法(函数)
猜你喜欢
转载自blog.csdn.net/piduocheng0577/article/details/105061079
今日推荐
周排行