Python Flask

47 阅读3分钟

简介

Flask 是一个轻量级的 Python web 服务框架,基于 Werkzeug 和 Jinja2 库创建。 Flask 可以让你用极少的代码来构建网站应用程序。它由 Armin Ronacher 创建于 2010 年,目前由 Pallets Projects(即 Flask 的创始人,核心领导者组成的组织)管理。

Flask 的优点:

  1. 轻量级,易于学习和使用。
  2. 灵活且可扩展,能够快速应对不同的项目需求。
  3. 由于是基于 Python 的,可以直接与 Python 库一起使用,如 NumPy、SciPy、Pandas 等。

关键特性

以下是 Flask 的一些主要特性:

  1. 由 Jinja2 模板引擎提供的模板支持。
  2. 请求分派器,支持 URL 规则和 HTTP 请求方法等。
  3. Flask 路由系统将 URL 与它们的处理函数映射起来。
  4. 请求对象和上下文对象的全局访问。
  5. 基于 WSGI 1.0 标准的 Web 服务器网关接口。
  6. 特定于会话的 cookie 支持,常用于用户认证。
  7. 支持 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 的更好理解。