Tornado 在模板里使用 Python 语句

我相信当你在看这篇文章的时候,你一定已经了解了 模板Templates 这个概念。

Tornado Web应用中使用render方法传送HTML给浏览器,即将模板在浏览器中渲染出来。

我们知道render函数参数包含两个部分:第一个部分是模板文件。我们用到的模板就是那些html文件。第二个部分是我们要传递的数据。除了单纯的html标签内容,我们还可以填充Python变量控制语句函数等到模板中,以生成我们想要的动态网页。

总结

  • 输出变量值、表达式值(调用函数应该也可以算到这里面?)

    {{ 变量名 }}{{ 表达式 }}
    
  • 赋值语句

    {%set 变量名=”hello world” %}
    
  • 控制语句(注意:用end结尾)

    {% if 逻辑表达式 %}
    
        <p>表达式为真</p>
    
    {% else %}
    
        <p>表达式为假</p>
    
    {% end %}//记得用end结尾
    
    
    {% for one in blogs %}#循环语句
    
        <h1>{{ title }}</h1>
    
        <p>{{ content }}</p>
    
    {% end %}//记得哦
    

对了,在《Tornado 简单入门教程(一)——Demo1》中还有一个东西没说。

    <link rel=”stylesheet” href=”{{ static_url(“style.css”) }}”>

我们在settings里设置了static_path参数。static_url函数利用这个参数,为我们生成引用文件的正确路径。

“那么为什么使用static_url而不是在你的模板中硬编码呢?有如下几个原因。其一,static_url函数创建了一个基于文件内容的hash值,并将其添加到URL末尾(查询字符串的参数v)。这个hash值确保浏览器总是加载一个文件的最新版而不是之前的缓存版本。无论是在你应用的开发阶段,还是在部署到生产环境使用时,都非常有用,因为你的用户不必再为了看到你的静态内容而清除浏览器缓存了。

另一个好处是你可以改变你应用URL的结构,而不需要改变模板中的代码。例如,你可以配置Tornado响应来自像路径/s/filename.ext的请求时提供静态内容,而不是默认的/static路径。如果你使用static_url而不是硬编码的话,你的代码不需要改变。比如说,你想把静态资源从我们刚才使用的/static目录移到新的/s目录。你可以简单地改变静态路径由static变为s,然后每个使用static_url包裹的引用都会被自动更新。如果你在每个引用静态资源的文件中硬编码静态路径部分,你将不得不手动修改每个模板。”——《Introduction
to Tornado》

强烈推荐初学者把《Introduction to Tornado》认真看一遍。

    原文作者:CHENGKANG
    原文地址: https://segmentfault.com/a/1190000002703410
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞