标题 tornado 入门之(模板的使用,静态文件加载)【4】
模板的使用
同目录下添加文件夹templates加入index.html、base.html
添加相应的路由及路径
os.path.abspath(__file__) # 当前绝对路径
os.path.dirname() # 当前目录父目录
os.path.join() # 目录的拼接
template_path=os.path.join(os.path.dirname(os.path.abspath(__file__)), 'templates')
对应的 Handler , 用 self.render(‘index.html’) 加载模板
class XindexHandler(tornado.web.RequestHandler):
def get(self):
self.render('index.html')
可用 模板index.html继承于base.html
index.html在这里作为子模板,base.html为子模板留下坑,方便了子模板对其进行扩展
<!-- index.html -->
{% extends 'base.html' %}
{% block title %}
首页(子模板)
{% end %}
{% block content %}
<p>hello 模板继承</p>
{% end %}
通过上述步骤实现简单的模板使用
模板的使用代码有需要可以自行下载
给模板传递参数,在之前的基础上self.render() 内部加入
class XindexHandler(tornado.web.RequestHandler):
def get(self):
items = ['C++','Python','Java']
self.render('index.html',items = items)
参数的使用:在index.html中加入
<p>{{items}}</p>
模板的语法
变量的使用 ‘{{ 变量名 }}’ 解析
<p>{{items}}</p>
标签的使用 ‘{% 标签名 %}’ 和 ‘{% end %}’ 解析
if的使用
{% if a == 'Python' %}
<p style="color:red;">{{a}}</p>
{% elif a == 'C++' %}
<p style="color:greenyellow;">{{a}}</p>
{% else %}
<p style="color:deeppink;">{{a}}</p>
{% end %}
for的使用
{% for a in items %}
<p>{{a}}</p>
{% end %}
try的使用
{% try %}
<p>{{ items2[10] }}</p>>
{% except %}
<p>下标越界</p>
{% finally %}
<p>必须执行的操作</p>
{% end %}
静态文件加载
先添加静态文件路径
static_path=os.path.join(os.path.dirname(os.path.abspath(__file__)), 'static')
加载静态文件style.css
{% block css %}
<!--第一种加载方式,直接定义静态文件的路径-->
<link rel="stylesheet" href="/static/css/style.css">
<!--第二种加载方式 -->
<link rel="stylesheet" href="{{ static_url('css/style.css') }}">
{% end %}
运行结果:
模板语法静态文件的加载代码