Tornado之模板基础
import tornado
import tornado.ioloop
import tornado.web
import tornado.httpserver
import time
import tornado.options
from tornado.options import options,define
define("port",default=8080,help="run port",type=int)
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("我在下面!<br>")
self.render('01in_out.html')
def post(self, *args, **kwargs):
name = self.get_argument("name","no")
#self.write(name)
urllist = [
('http://www.shiguangkey.com/',"课堂"),
('http://www.baidu.com/',"百度"),
('http://www.zhihu.com/',"知乎")
]
atga ="""
<a href="http://www.baidu.com/" target="_blank"> __百度</a><br>
"""
##模板转义,尖括号被变成其他的了
self.render("02template.html", ##跳转到02template.html页面
username = name, ###不定长参数,字典传参 实在动态的往页面填入数据
time=time,
urllist = urllist,
atga = atga
)
application = tornado.web.Application(
handlers = [
(r"/tem", MainHandler),
],
template_path = 'templates', #在 application 中配置模板文件和静态文件的路径:
static_path='static', #引入静态文件
#autoescape = None, #整个项目 全局去掉转义
debug=True
)
if __name__ =="__main__":
tornado.options.parse_command_line()
http_server=tornado.httpserver.HTTPServer(application)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
下面看前端02template.html
文件代码:
<!DOCTYPE html>
{# autoescape None #}
<!-- 对模板级别取消转义 加% 此处为做笔记注释掉-->
<html lang="en">
<head>
<meta charset="UTF-8">
<title>template</title>
<style>
* {
margin: 0;
padding: 0;
}
body{
background: blanchedalmond;
}
</style>
</head>
<body>
hello {{username}}
<br>
{{1+1}}
<br>
{{a=time.time()}}
<!--大括号里面可以运行python的表达式-->
<br>
{% if username != 'no' %}
欢迎 {{ username }}登录
{% else %}
请登录!
{% end %}
<br>
<!--大括号加%是模板的指令 模板的符号 end结束-->
<!--{# a=time.time() #} 注释应该里面这样 -->
<br>
{{!1+1 }}
<!--上面这样可以原样打印出源码,语句不执行-->
<br>
{% for i in urllist %}
{{ i }}
<a href="{{ i[0] }}" target="_blank"> {{i[1]}} </a><br>
{% end %}
<br>
<!--在模板里面声明变量,用set 声明与修改-->
{% set a = 0 %}
{% while a<5 %}
{{ a }}<br>
{% set a +=1 %}
{% end %}
<br>
{{ atga }} 转义
<br>
{% raw atga %} 局部去掉转义
<!-- 前面加上raw就去掉转义,就不会把尖括号变成其他的了 -->
<br>
{{ escape(atga) }}
<!--开启模板不转义之后,escape(atga) 对部分进行转义-->
<br>
{% if username != 'no' %}
欢迎 {{ username }}登录
<img src="{{ static_url('images/2.jpg') }}" width="200" height="200">
<img src="static/images/3.jpg" width="200" height="200">
<!--此处的static会自动寻找变量,注意static文件的引入方式-->
{% else %}
请登录!
{% end %}
</body>
</html>
- 部分代码来自—-潭州课堂