如何使用 Flask 编写 Python Web API

在本快速教程中,使用 Flask 这个发展最快的 Python 框架之一,从服务器获取数据。
143 位读者喜欢这篇文章。
Getting started with Jekyll, a free and open source static site generator

Internet Archive Book Images。由 Opensource.com 修改。CC BY-SA 4.0

Python 是一种高级的、面向对象的编程语言,以其简洁的语法而闻名。它一直是构建 RESTful API 的顶级编程语言之一。

Flask 是一个可定制的 Python 框架,使开发人员可以完全控制用户访问数据的方式。Flask 是一个“微框架”,它基于 Werkzeug 的 WSGI 工具包和 Jinja 2 的模板引擎。它被设计为一个用于 RESTful API 开发的 Web 框架。

Flask 是发展最快的 Python 框架之一,包括 Netflix、Pinterest 和 LinkedIn 在内的热门网站已将 Flask 纳入其开发堆栈。这是一个关于 Flask 如何允许用户使用 HTTP GET 方法从服务器获取数据的示例。

设置 Flask 应用程序

首先,为您的 Flask 应用程序创建一个结构。您可以在系统上的任何位置执行此操作。

$ mkdir tutorial
$ cd tutorial
$ touch main.py
$ python3 -m venv env
$ source env/bin/activate
(env) $ pip3 install flask-restful
Collecting flask-restful
Downloading https://files.pythonhosted.org/packages/17/44/6e49...8da4/Flask_RESTful-0.3.7-py2.py3-none-any.whl
Collecting Flask>=0.8 (from flask-restful)
[...]

导入 Flask 模块

接下来,将 flask 模块及其 flask_restful 库导入到您的 main.py 代码中

from flask import Flask
from flask_restful import Resource, Api

app = Flask(__name__)
api = Api(app)

class Quotes(Resource):
    def get(self):
        return {
            'William Shakespeare': {
                'quote': ['Love all,trust a few,do wrong to none',
		'Some are born great, some achieve greatness, and some greatness thrust upon them.']
        },
        'Linus': {
            'quote': ['Talk is cheap. Show me the code.']
            }
        }

api.add_resource(Quotes, '/')

if __name__ == '__main__':
    app.run(debug=True)

运行应用程序

Flask 包含一个内置的 HTTP 服务器用于测试。测试您构建的简单 API

(env) $ python main.py
 * Serving Flask app "main" (lazy loading)
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)

启动开发服务器会启动您的 Flask 应用程序,其中包含一个名为 get 的方法来响应简单的 HTTP GET 请求。您可以使用 wgetcurl 或任何 Web 浏览器对其进行测试。要使用的 URL 在您启动服务器后在 Flask 的输出中提供。

$ curl https://#:5000
{
    "William Shakespeare": {
        "quote": [
            "Love all,trust a few,do wrong to none",
            "Some are born great, some achieve greatness, and some greatness thrust upon them."
        ]
    },
    "Linus": {
        "quote": [
            "Talk is cheap. Show me the code."
        ]
    }
}

要查看使用 Python 和 Flask 的类似 Web API 的更复杂版本,请导航到美国国会图书馆的 Chronicling America 网站,该网站提供对有关历史报纸和数字化报纸页面信息的访问。

为什么使用 Flask?

Flask 有几个主要优点

  1. Python 很流行且被广泛使用,因此任何懂 Python 的人都可以为 Flask 开发。
  2. 它轻巧且极简。
  3. 在设计时考虑了安全性。
  4. 出色的文档,其中包含大量清晰、可用的示例代码。

也有一些潜在的缺点

  1. 它轻巧且极简。如果您正在寻找一个包含大量捆绑库和预制组件的框架,这可能不是您的最佳选择。
  2. 如果您必须围绕 Flask 构建自己的框架,您可能会发现维护自定义的成本抵消了使用 Flask 的好处。

如果您正在寻找构建 Web 应用程序或 API,Flask 是一个值得考虑的好选择。它功能强大且健壮,并且项目文档使其易于入门。尝试一下,评估它,看看它是否适合您的项目。

接下来阅读什么
标签
User profile image.
一位充满热情的科技博主,在软件开发行业拥有超过 15 年的专业技术知识。

2 条评论

Sanic 也是一个不错的 python3 框架

感谢您分享关于 Python 的内容,这对 Python 开发项目很有帮助。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.