专栏目录请点击
我们新建如下目录结构
其中
index.html
DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Documenttitle>
head>
<body>
<h2>Hello Worldh2>
body>
html>
app.py
import tornado.ioloop
import tornado.web
import os
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render("index.html")
def make_app():
return tornado.web.Application(
# 路由
[
(r"/", MainHandler),
],
# 网页模板
template_path=os.path.join(os.path.dirname(__file__), "templates")
)
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
运行并访问http://localhost:8888/
,他会返回如下结果
我们可以想模板index.html
中传递一个变量和表达式
index.html
<body>
<h2>Hello Worldh2>
<h3>num:{{num}}h3>
<h3>num + 10:{{num + 10}}h3>
<h3>姓名1:{{person["name"]}}h3>
<h3>年龄1:{{person["age"]}}h3>
<h3>姓名2:{{name}}h3>
<h3>年龄2:{{age}}h3>
{% set sex = "男" %}
<h3>性别:{{sex}}h3>
body>
handler
class MainHandler(tornado.web.RequestHandler):
def get(self):
num = 5
person1 = {
"name": "sunwukong",
"age": 18
}
person2 = {
"name": "zhubajie",
"age": 25
}
self.render("index.html", num=num, person=person1, **person2)
效果
index.html
<ul>
{% for _i in _list %}
<li>{{_i}}li>
{% end %}
ul>
<ul>
{% for _index,_element in enumerate(_list) %}
<li>序号:{{_index}},元素:{{_element}}li>
{% end %}
ul>
handler
_list = [1, 2, 3, 4]
self.render("index.html", _list=_list)
此外,我们还可以使用while来做循环,不常用,这里就不做解释了
效果
index.html
<h2>ifh2>
{% for _index,_element in enumerate(_list) %}
{% if _element == 3 %}
<li>输出的元素为3,序号:{{_index}},元素:{{_element}}li>
{% end %}
{% end %}
handler
_list = [1, 2, 3, 4]
self.render("index.html", _list=_list)
效果
这是一个内置函数,用于用于静态路径的引入
我们在项目的根目录下新建static/css/index.css
,并写上如下代码
index.css
.title{
color: red;
}
index.html
<body>
<h2>Hello Worldh2>
<p class="title">我爱我的祖国p>
body>
handler
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.render("index.html")
def make_app():
return tornado.web.Application(
# 路由
[
(r"/", MainHandler),
],
# 网页模板
template_path=os.path.join(os.path.dirname(__file__), "templates"),
# 静态路径
static_path=os.path.join(os.path.dirname(__file__),"static")
)
if __name__ == "__main__":
app = make_app()
app.listen(8888)
tornado.ioloop.IOLoop.current().start()
效果
index.html
<body>
<h2>Hello Worldh2>
<section>
<span>resultspan>
<span>{{myFun(1,2)}}span>
section>
body>
handler
class MainHandler(tornado.web.RequestHandler):
def get(self):
def myFun(num1,num2):
return num1 + num2
self.render("index.html", myFun=myFun)
结果