Skip to content

Latest commit

 

History

History
115 lines (87 loc) · 2.6 KB

416-832646-模版继承关系_基础模版_父子模版_templates.sy.md

File metadata and controls

115 lines (87 loc) · 2.6 KB
show version enable_checker
step
1.0
true

flask 最小应用

回忆上次

  • 上次了解了渲染模板相关的内容
  • 可以将后台的变量 渲染到前台的页面模版上
  • 关于模版可以有继承关系吗?

观察例子

图片描述

实现例子

图片描述

  • 最终结果

图片描述

查看模板

图片描述

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    {% block head %}
    <link rel="stylesheet" href="style.css" />
    <title>{% block title %}{% endblock %} - My Webpage</title>
    {% endblock %}
</head>
<body>
    <div id="content">{% block content %}{% endblock %}</div>
    <div id="footer">
        {% block footer %}
        &copy; Copyright 2008 by <a href="http://domain.invalid/">you</a>.
        {% endblock %}
    </div>
</body>

子模版

{% extends "base.html" %}
{% block title %}Index{% endblock %}
{% block head %}
    {{ super() }}
    <style type="text/css">
        .important { color: #336699; }
    </style>
{% endblock %}
{% block content %}
    <h1>Index</h1>
    <p class="important">
      Welcome on my awesome homepage.
    </p>
{% endblock %}
  • 子模版 填充 一些模版中的模版项
  • Super 块
    • 可以调用 super 来渲染父级块的内容
from flask import render_template
from flask import request
from flask import Flask

app = Flask(__name__)

@app.route('/')
def login():
    return render_template('subpage.html')

if __name__ == "__main__":
    app.run(debug=True)

运行结果

图片描述

  • 运行成功
  • 试着给subpage.html传一个参数试试

运行结果

  • 将range(10)作为参数 传给subpage.html

图片描述

  • 注意这个时候14,16行
    • 用的是大括号
    • 而不是尖括号

总结

  • 这次研究了 jinja2模版
    • 可以 直接导入模板
    • 也可以有 一个 父类模板
      • 然后 使用子模版 对父模板 进行填充
      • 而且 可以 把参数 传递进去
  • 可以把 网页传递的参数
    • 存储进 数据库吗?
  • 下次再说!