简介
Flask 是一个轻量级的 Python web 服务框架,基于 Werkzeug 和 Jinja2 库创建。 Flask 可以让你用极少的代码来构建网站应用程序。它由 Armin Ronacher 创建于 2010 年,目前由 Pallets Projects(即 Flask 的创始人,核心领导者组成的组织)管理。
Flask 的优点:
- 轻量级,易于学习和使用。
- 灵活且可扩展,能够快速应对不同的项目需求。
- 由于是基于 Python 的,可以直接与 Python 库一起使用,如 NumPy、SciPy、Pandas 等。
关键特性
以下是 Flask 的一些主要特性:
- 由 Jinja2 模板引擎提供的模板支持。
- 请求分派器,支持 URL 规则和 HTTP 请求方法等。
- Flask 路由系统将 URL 与它们的处理函数映射起来。
- 请求对象和上下文对象的全局访问。
- 基于 WSGI 1.0 标准的 Web 服务器网关接口。
- 特定于会话的 cookie 支持,常用于用户认证。
- 支持 web 表单的 CSRF 保护。
安装
使用 Flask 之前,你需要安装 Python 2.7 或 Python 3.3+。 安装 Flask 非常简单,只需要运行以下命令:
\$ pip install Flask
应用程序实例
下面是一个简单的 Flask 应用示例:
from flask import Flask
app = Flask(**name**)
@app.route("/")
def index():
return "Hello World!"
if **name** == "**main**":
app.run()
在这个例子中,我们首先导入 Flask 并创建一个 Flask 对象实例。 然后,我们定义了一个路由 /,它将返回“Hello World!“的响应。最后,我们使用 app.run() 方法来启动应用程序。
路由
路由是 Flask 程序中处理 HTTP 请求 URL 的方式。 在 Flask 中,使用 @app.route() 装饰器来定义路由。 在下面的例子中,我们定义了一个返回“Hello World!”的路由:
@app.route("/")
def hello():
return "Hello World!"
模板
Flask 内置了模板引擎 Jinja2,它允许你通过设计优美的模板来渲染动态内容。 Flask 中的模板使用扩展名为 .html。
Jinja2 支持标记(tags),过滤器(filters)和变量(variables),使得模板设计变得非常直观和灵活。 下面是一个简单的 Flask 模板示例:
from flask import Flask, render\_template
app = Flask(**name**)
@app.route('/')
def hello():
return render\_template('hello.html', name='Guest')
if **name** == '**main**':
app.run(debug=True)
建议阅读更多 Flask 模板教程。
静态文件
Flask 可以包含静态文件,如 CSS、JavaScript 和图像。 在 Flask 应用程序中,这些文件存储在特殊的 static 文件夹中。 然后,我们可以使用 Flask 的 url_for() 功能来获取这些静态文件的 URL。
下面是一个示例:
from flask import Flask, url\_for
app = Flask(**name**)
@app.route('/css')
def styles():
path = url\_for('static', filename='style.css')
return f'<link rel="stylesheet" href="{path}">'
if **name** == '**main**':
app.run(debug=True)
在这个示例中,我们定义了一个路由 /css,其中我们通过 url_for() 函数获取了 style.css 文件的 URL。
结论
Flask 是一个功能强大、灵活和易于使用的 Python web 应用程序框架。 它的简单性使得它成为学习和使用 Python web 开发的理想选择。 希望这篇文章可以为初学者提供对 Flask 的更好理解。