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请求。 您可以使用wget或curl或任何Web浏览器对其进行测试。 启动服务器后,将在Flask的输出中提供要使用的URL。
$ curl http://localhost:
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的更复杂版本,请导航至美国国会图书馆的“ 美国慢性病”网站,该网站提供对历史报纸和数字报纸页面信息的访问。
为什么要使用Flask?
烧瓶有几个主要优点:
- Python非常流行且被广泛使用,因此任何了解Python的人都可以为Flask开发。
- 它轻巧而简约。
- 考虑安全性而构建。
- 出色的文档,其中包含大量清晰,有效的示例代码。
- 它轻巧而简约。 如果您正在寻找带有大量捆绑库和预制组件的框架,那么这可能不是您的最佳选择。
- 如果必须围绕Flask构建自己的框架,则可能会发现维护自定义项的成本抵消了使用Flask的好处。
如果您要构建Web应用程序或API,可以考虑选择Flask。 它功能强大且健壮,并且项目文档使入门变得容易。 试用一下,评估一下,看看它是否适合您的项目。
翻译自: https://opensource.com/article/19/11/python-web-api-flask