我相信当你在看这篇文章的时候,你一定已经了解了 模板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》认真看一遍。