• 函数


    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 textself.render("new.html", text=text)

    我们查看⻚⾯源代码,发现<、>、"等被转换为对应的html字符。
    &lt;script&gt;alert(&quot;hello!&quot;);&lt;/script&gt;
    这是因为tornado中默认开启了模板⾃动转义功能,防⽌⽹站受到恶意攻击。
    我们可以通过raw语句来输出不被转义的原始格式,如:
    {% raw text %}注意:在Firefox浏览器中会直接弹出alert窗⼝,⽽在Chrome浏览器中,需要
    set_header("X-XSS-Protection", 0)
    若要关闭⾃动转义,⼀种⽅法是在Application构造函数中传
    递autoescape=None,另⼀种⽅法是在每⻚模板中修改⾃动转义⾏为,添加如下
    语句:
    {% autoescape None %}
    escape()
    关闭⾃动转义后,可以使⽤escape()函数来对特定变量进⾏转义,如:
    {{ escape(text) }}

Tornadao—模板语法(函数)相关推荐

  1. Tornadao—模板语法(自定义函数)

    自定义函数 def house_title_join(titles):return "+".join(titles) class IndexHandler(RequestHandl ...

  2. Tornadao—模板语法(控制语句)

    控制语句 可以在Tornado模板中使⽤Python条件和循环语句.控制语句以{\%和\%}包围, 并以类似下⾯的形式被使⽤: {% if page is None %} 或 {% if len(en ...

  3. views视图函数-模板语法

    一.Django基础–views视图函数 "这是我参与更文挑战的第2天,活动详情查看: 更文挑战" 视图 CBV和FBV FBV function based view ,平常用函 ...

  4. VUE 学习代码 监视和 模板语法回调函数

    文章目录 HelloWorld 模板语法 03_计算属性和监视 HelloWorld <!DOCTYPE html> <html lang="en"> &l ...

  5. C++模板学习02(类模板)(类模板语法、类模板与函数模板的区别、类模板中的成员函数创建时机、类模板对象做函数参数、类模板与继承、类模板成员函数类外实现、类模板分文件编写、类模板与友元)

    C++引用详情(引用的基本语法,注意事项,做函数的参数以及引用的本质,常量引用) 函数高级C++(函数的默认参数,函数的占位参数,函数重载的基本语法以及注意事项) C++类和对象-封装(属性和行为作为 ...

  6. Tornado-02-Tornado、路由进阶、视图进阶(视图中内置的钩子方法、视图方法调用顺序、冲刷缓存、用户认证)、模板语法(基本语法、内置标签或函数)

    Tornado 一.路由进阶 路由语法和参数 在路由列表的路由成员中,我们一共可以设置4个参数 url(r"/uri路径", 视图类, {"参数名":" ...

  7. 模板 (函数模板语法 ,类模板与函数模板的区别,:函数模板案例,普通函数与函数模板的区别,普通函数与函数模板调用规则,模板的局限性,类模板分文件编写.cpp,Person.hpp,类模板与友元)

    **01:函数模板语法: #include<iostream> using namespace std;//交换两个整型函数 void swapInt(int &a ,int &a ...

  8. django之:网页伪静态 JsonResponse form表单携带文件数据 CBV源码分析 模板语法传值 模板语法之过滤器 标签 自定义标签函数 过滤器、inclusion_tag模板的继承导入

    目录标题 一:网页伪静态 1.定义 2.如何实现 二:视图层 1.视图函数返回值问题 2.视图层返回json格式的数据 3.form表单携带文件数据 4.CBV源码分析 1.CBV和FBV: 2.CB ...

  9. Vue的模板语法学习

    模板语法 1.插值 a.文本 数据绑定最常见的形式就是使用 "Mustache" 语法(双大括号)的文本插值 我们在普通插值的时候无论何时,绑定的数据对象上 msg 属性发生了改变 ...

最新文章

  1. 关于虚拟空间与物理空间思想的解析
  2. 【小题目】判断一个数字是否是3的倍数
  3. 面试题 HashMap和HashTable有什么区别
  4. Gson解析Json格式数据
  5. Spatial Transformer Networks(STN)
  6. python add_subplot_Python使用add_subplot与subplot画子图操作
  7. 光动能表怎么维护_[腕表]西铁城CITIZEN AT814451E 光动能 电波表 开
  8. Spring依赖注入DI
  9. webpack的分享
  10. 供电绘图计算软件-新增了图库管理功能
  11. 【Multisim仿真】74LS193+74LS138流水灯
  12. https免费泛域名证书申请
  13. apache的动态网站部署,discuz论坛系统和ecshop电商系统
  14. 2017 东北四省赛热身赛 C
  15. vertica java_Vertica数据查询优化
  16. 北京住房公积金联名卡政策问答
  17. 阿里云云计算专业认证考试(Alibaba Cloud Certified Professional,ACP)
  18. 基带传输、频带传输与宽带传输
  19. 如何用python制作炫酷的个人足迹地图?
  20. 最新草莓CDMS原创内容分销系统/微信小说平台系统1.0版

热门文章

  1. BottomNavigationView+Navigation 添加底部导航菜单切换时的fragment过渡动画animation
  2. echarts 常见的功能点小结
  3. 爬取CSDN官方博客粉丝中码龄20年以上的用户数量
  4. python基础语言与应用第五章_Python基础教程读书笔记(第5章—第6章:条件、循环和其他语句;抽象)...
  5. 日期选择器:jquery datepicker的使用
  6. ios 通讯录 通过电话号码 查询姓名
  7. python 报错 invalid value 2_【python】错误解决经历
  8. Clannad(1)
  9. Uboot 板级初始化流程and so on
  10. 会用top与free命令查看linux服务器内存使用情况