大家好,我是天空之城,今天给大家带来小福利,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>