大家好,我是天空之城,今天给大家带来小福利,flask框架学习笔记(4)
include语句和set语句的运用
include 语句可以把1个模板引到另外1个模板中,类似于把1个模板的代 码copy到另外1个模板的指定位置
{% include 'header.html' %}
主体内容
{% include 'footer.html' %}
赋值(set)语句
有时候我们想在在模板中添加变量,这时候赋值语句(set)就派上⽤场了
{% set name=‘juren’ %}
那么以后就可以使⽤ name 来代替 juran 这个值了,同时,也可以给他赋值为 列表和元组:
{% set navigation = [(‘index.html’, ‘Index’), (‘about.html’, ‘Abou t’)] %}
赋值语句创建的变量在其之后都是有效的,如果不想让1个变量污染全局环 境,可以使⽤ with 语句来创建1个内部的作用域,将 set 语句放在其中,这样 创建的变量只在 with 代码块中才有效
1 {% with %}
2 {% set foo = 42 %}
3 {{ foo }} foo is 42 here
4 {% endwith %}
也可以在 with 的后⾯直接添加变量,如以上的写法可以修改成这样:
1 {% with foo = 42 %}
2 {{ foo }}
3 {% endwith %}
这两种⽅式都是等价的,⼀旦超出 with 代码块,就不能再使⽤ foo 这个变量 了。
第一个demo.py文件
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('demo.html')
@app.route('/list/')
def list_article():
return render_template('list.html')
if __name__ == '__main__':
app.run(debug=True)
demo.html文件
{% extends 'base.html' %}
{% block footer %}
<div class="footer">
这是网页尾部
{% block foo %}
<div class="foo">
f
</div>
{% endblock %}
</div>
{% endblock %}
{% block Title %}
{{ super() }}
这是首页
{% endblock %}
base.html模板文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{% block Title %}
Title
{% endblock %}</title>
</head>
<body>
{% block header %}
<ul>
<li>国际</li>
<li>军事</li>
<li>财经</li>
<li>娱乐</li>
</ul>
{% endblock %}
{% block footer %}
<div class="footer">
这是网页尾部
{% block foo %}
<div class="foo">
foo
</div>
{% endblock %}
</div>
{% endblock %}
{% block foot %}
<p>友情提示</p>
{% endblock %}
{% block demo %}
{% endblock %}
</body>
</html>
list.html文件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="{{ url_for('static', filename='css/index.css') }}">
<script src="{{ url_for('static', filename='js/index.js') }}"></script>
</head>
<body>
<img src="{{ url_for('static', filename='images/index.jpeg') }}" alt="">
</body>
</html>