Tornado中的extends和block

extends和block的简单例子和解释

<!-- main.html -->
<head>
    <title>{{ page_title }}</title>
</head>
<body>
    <div id="container">
        <header>
            {% block header %}<h1>Burt's Books</h1>{% end %}
        </header>
    </div>
</body>
<!-- index.html -->
{% extends "main.html" %}

{% block header %}
    <h1>{{ header_text }}</h1>
{% end %}
# main.py
class MainHandler(tornado.web.RequestHandler):
    def get(self):
        self.render(
            "index.html",
            page_title="Burt's Books | Home",
            header_text="Welcome to Burt's Books!",
        )
访问localhost:8000/,显示的是哪个页面?

以main.html为基础、填入了index.html中block定义的内容。因为index.html extends了main.html。

main.html中的{{ page_title }}值来自哪里?

MainHandler中self.render的入参。

main.html中的以下内容会显示为什么?
{% block header %}<h1>Burt's Books</h1>{% end %}

显示为“Welcome to Burt’s Books!”
首先它被index.html中的{% block header %} {% end %}覆盖,其次{{ header_text }}为入参的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值