Flask课程2-模板templates

207 阅读1分钟

如果不用模板主页返回一个简单的HTML页面

# app/routes.py
from app import app

@app.route('/')
@app.route('/index')
def index():
    user = {'username': 'Idu'}
    return '''
    <html>
    	<head>
    		<title>Home Page - IduBlog</title>
    	</head>
    
    	<body>
    		<h1>Hello, '''+ user['username']+ '''!</h1>
    	</body>
    </html>'''

使用模板

创建目录app/templates

创建第一个模板文件app/templates/index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{title}} - Idu</title>
</head>
<body>
    <h1>Hello, {{ user.username }} </h1>
</body>
</html>

在routes.py中使用该模板文件

from app import app
from flask import render_template
@app.route('/')
@app.route('/index')
def index():
	user = {'username': 'Idu'}
	return render_template('index.html', title='Home', user=user)

运行应用

...

END

将模板转换为完整的HTML页面的操作称为渲染。 为了渲染模板,需要从Flask框架中导入一个名为render_template()的函数。 该函数需要传入模板文件名和模板参数的变量列表,并返回模板中所有占位符都用实际变量值替换后的字符串结果。

render_template()函数调用Flask框架原生依赖的Jinja2模板引擎。 Jinja2用render_template()函数传入的参数中的相应值替换{{...}}块。