Tornado模板基本了解


1模板的基本了解

ornado自身提供了一个轻量级、快速并且灵活的模板语言在tornado.template模块中。

模板就是格式固定的网页:格式是固定的,内容是变化的模板是一个允许嵌入Python代码片段的HTML文件

**1、在Application的参数中添加template_path 配置,指定模板的路径和静态文件的路径**

template_path='templates',
static_path='static',

**2、把html文件放入'templates'文件夹下 把静态文件放入'static'文件夹下**

**3、使用render方法渲染模板**

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.render('tmep_index.html')

这段代码告诉Tornado在templates文件夹下找到一个名为tmeplate_index.html 的文件,读取其中的内容,并且发送给浏览器

#### 模板中的符号

```python
{{   }}   表达式用双大括号包围,内容可以是任何python表达式 ,在双大括号中的单词是占位符
{%   %}   模板控制语句以{%  %}包围
```

双大括号中放置变量名或表达式,变量名与传入的关键字参数名要相同

01index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
</head>
<body>

hello budong

<form method="post" action="/index">
    <p>用户名<br><input type="text" name="name"></p>
    <p>密码<br><input type="text" name="password"></p>
    <input type="submit">
</form>

</body>
</html>

02temp_index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

欢迎用户 {{ username }}登录

</body>
</html>

处理器文件

class IndexHandler(tornado.web.RequestHandler):
    def get(self):
        self.render('01index.html')

    def post(self):
        username = self.get_argument('name','no')
        passwd = self.get_argument('password','no')
        self.render('02tmep_index.html',username=username)

tornado的模板处理已经十分方便,在{{}}中可以传入任意的python表达式:

(r'/temp',TempHandler),
class TempHandler(tornado.web.RequestHandler):
    def get(self):
        username = self.get_argument('name','no')
        self.render('02tmep_index.html',username=username)

接下来我们再来学习一下模板:

```python
#传入一个表达式
{{ 1+2 }}
<br>
{{ time.time() }} # 可以执行函数
<br>
{{ haha() }} # 自定义的函数也可以传入

```

#控制语句

控制语句的大部分就像对应的Python语句一样工作

控制语句的返回以最近的{% end %} 结束

**if条件判断**

{% if condition %}
     ...
{% elif condition %}
     ...
{% else %}
     ...
{% end %}

例子:

{% if username!='no' %}
    欢迎用户 {{ username }} 登录
{% else %}
    您还没有登录
{% end %}

**for循环**

{% for var in expr %}
     ...
{% end %}

在处理器中的写法

class TempHandler(tornado.web.RequestHandler):
def test(self):
return 'this is tornado'

def get(self, *args, **kwargs):
username = self.get_argument('name','no')
li = ['a','b','c','d']
self.render('02temp_index.html',
username=username,
haha=self.haha,
li=li
)

在html文件中的写法

<br>
{% for i in li%}
    {{ i }} <br>
{% end %}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM