目录
也可以在 with 的后面直接添加变量,比如以上的写法可以修改成这样:
include语句
include语句可以把一个模板引入到另外一个模板中,类似于把一个模板的代码copy到另外一个模板的指定位置
{% include '要引入的html文件.html'%}
主体内容
{% include 'footer.html'%}
例子:我们创建一个py文件
from flask import Flask,render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
@app.route('/list/')
def list_article():
return render_template('list.html')
if __name__ =='__main__':
app.run(debug=True)
再创建一个index.html文件和一个list.html文件
list.html文件代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>这是列表页面</h1>
<ul>
<li>国际</li>
<li>军事</li>
<li>财经</li>
<li>娱乐</li>
</ul>
<div class="footer">
这是网页尾部
</div>
</body>
</html>
index.html文件代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>首页</h1>
</body>
</html>
如果我们想把list.html文件中的这两部分分别放到index.html文件中首页的前面和后面我们有什么办法呢?
首先有一种,直接赋值粘贴,但是考虑到程序的优化代码的简洁,所以我们不采用这种方法,这时就用到了include语句
我们创建一个header.html文件(就是放在首页前面的代码)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>国际</li>
<li>军事</li>
<li>财经</li>
<li>娱乐</li>
</ul>
</body>
</html>
再创建一个footer.html文件(就是放在首页后面的代码)
<div class="footer">
这是网页尾部
</div>
然后在index.html文件中用include语句引入他们
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% include 'commit/header.html' %}
<h1>首页</h1>
{% include 'commit/footer.html' %}
</body>
</html>
网页显示:
成功!
还可以直接这样写,在py文件中写入下面代码
@app.route('/article/')
def article():
return render_template('article.html')
然后创建一个article.html文件
{% include 'commit/header.html' %}
<h1>首页</h1>
{% include 'commit/footer.html' %}
然后我们访问/article/
ok和我们上面的网页是一样的,成功!
赋值(set)语句
有时候我们想在在模板中添加变量,这时候赋值语句(set)就派上⽤场了
我们py文件中没有给username赋值,直接在html文件中使用set赋值
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
{% set username = 'zaaaacki'%} #####
{% include 'commit/header.html' %}
<h1>首页</h1>
<p>{
{ username }}</p>
{% include 'commit/footer.html' %}
</body>
</html>
如果我们在py文件中给username赋值为asd的话,那么我们显示的是zaaaacki还是asd呢?
@app.route('/')
def index():
context={
'username' : 'asd'
}
return render_template('ind