Flask返回HTML
Flask 是一个轻量级的 Web 开发框架,可以用来快速搭建网站和 Web 应用。在 Flask 中,我们可以使用 Jinja2 模板引擎来生成 HTML 页面。在本文中,我们将详细介绍如何在 Flask 中返回 HTML 页面。
创建一个基本的 Flask 应用
首先,我们需要安装 Flask。可以使用 pip 命令来安装 Flask:
pip install Flask
接下来,我们创建一个简单的 Flask 应用,代码如下:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return 'Hello, World!'
if __name__ == '__main__':
app.run()
保存为 app.py
文件,然后在命令行中运行 python app.py
,访问 http://localhost:5000/
就可以看到 “Hello, World!” 的字样。
返回简单的 HTML 页面
现在,我们来修改上面的代码,使其返回一个简单的 HTML 页面:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def index():
return '''
<html>
<head>
<title>Hello, World!</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
'''
if __name__ == '__main__':
app.run()
保存修改后的代码,重新运行 python app.py
,刷新页面,就能看到一个带有标题和内容的 HTML 页面了。
使用模板渲染HTML页面
上面的方法虽然可以返回 HTML 页面,但不便于维护和扩展。我们可以使用 Flask 提供的模板引擎 Jinja2 来渲染 HTML 页面。
首先,我们在项目根目录下创建一个 templates
文件夹,用来存放模板文件。然后在 templates
文件夹下新建一个名为 index.html
的文件,内容如下:
<!DOCTYPE html>
<html>
<head>
<title>Hello, World!</title>
</head>
<body>
<h1>Hello, World!</h1>
</body>
</html>
然后修改 Flask 应用的代码如下:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('index.html')
if __name__ == '__main__':
app.run()
保存修改后的代码,重新运行 python app.py
,访问 http://localhost:5000/
,页面内容和之前一样,但是现在已经使用了模板引擎渲染了 HTML 页面。
在HTML页面中传递参数
在实际开发中,我们经常需要在 HTML 页面中显示动态内容,比如从数据库中查询数据并在页面中显示。我们可以通过在渲染模板时传递参数来实现这一功能。
首先,我们修改 Flask 应用的代码,传递一个名为 name
的参数到模板中:
from flask import Flask, render_template
app = Flask(__name__)
@app.route('/')
def index():
name = 'Alice'
return render_template('index.html', name=name)
if __name__ == '__main__':
app.run()
然后修改 index.html
模板文件,让它显示我们传递过来的 name
参数:
<!DOCTYPE html>
<html>
<head>
<title>Hello, {{ name }}!</title>
</head>
<body>
<h1>Hello, {{ name }}!</h1>
</body>
</html>
保存修改后的代码,重新运行 python app.py
,访问 http://localhost:5000/
,页面会显示 “Hello, Alice!”。
结语
通过本文的介绍,我们了解了如何在 Flask 中返回 HTML 页面,包括返回简单的 HTML 页面和使用模板引擎渲染 HTML 页面。掌握这些技巧可以帮助我们更好地开发 Web 应用,并实现更加丰富的页面效果。