基础
- 在渲染模版的时候,默认会从项目根目录下的
templates
目录下查找模版。 - 如果不想把模版文件放在
templates
目录下,那么可以在Flask
初始化的时候指定template_folder
来指定模版的路径。
demo
from flask import Flask,render_template
app = Flask(__name__, template_folder='C:/templates')
#仿DTL:Django Tmplate Languate
@app.route('/')
def hello_world():
return render_template('index.html')
@app.route('/list/')
def my_list():
return render_template('posts/list.html')
模版参数:
- 在使用
render_template
渲染模版的时候,可以传递关键字参数。以后直接在模版中使用就可以了。 - 如果你的参数过多,那么可以将所有的参数放到一个字典中,然后在传这个字典参数的时候,使用两个星号,将字典打散成关键参数。
demo
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def hello_world():
context = {
'username':'cuiky',
'age': 23,
'country': 'china',
'childrens': {
'name':'abc',
'height': 183
}
}
return render_template('index.html', **context)
@app.route('/name/')
def say_name():
return render_template('index.html', username=cuiky)
@app.route('/name2/')
def say_name():
context = {
'username':'cuiky',
'age': 23,
'country': 'china',
'childrens': {
'name':'abc',
'height': 183
}
}
return render_template('index.html', context=context)
# 页面中调用要写context.username
if __name__ == '__main__':
app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Cuiky</title>
</head>
<body>
这是从模版中渲染的数据
<p>{{ username }}</p>
<p>{{ age }}</p>
<p>{{ country }}</p>
<p>{{ childrens.name }}</p>
<p>{{ childrens['name'] }}</p>
</body>
</html>