tornado 入门之(模板的使用,静态文件加载)酱酱仙的博客【4】

标题 tornado 入门之(模板的使用,静态文件加载)【4】


模板的使用

同目录下添加文件夹templates加入index.htmlbase.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 %}

在这里插入图片描述
运行结果:
在这里插入图片描述
模板语法静态文件的加载代码

发布了23 篇原创文章 · 获赞 8 · 访问量 2027

猜你喜欢

转载自blog.csdn.net/qq_39610398/article/details/102065142