API是应用程序编程接口的缩写,它作为中介层,允许两个应用程序进行通信。通过API,公司可以向个人、其他公司、商业伙伴等开放他们的应用程序数据和功能,用于创建更多功能或进行数据分析等不同目的。API允许任何有权限的人使用数据,使服务和应用程序能够相互通信。一个现实世界的例子是服务员,他从那里接收订单并将其交给厨师准备食物,然后这个服务员再把食物带给。在这里,服务员就是API,是客户端,而厨师是进行所有处理的网络服务器。
Flask
是一个第三方Python库,用于创建网络应用程序。它由Armin Ronacher开发。框架是一系列帮助网络开发者编写和部署应用程序的库或模块,而不需要处理线程管理、数据库处理等底层细节。Flask是一个微型框架,因为它不要求特定的工具或库,它没有表单验证、数据库抽象层或其他组件。Flask基于Werkzeug WSGI工具包和Jinja2模板引擎。
WSGI是Web Server Gateway Interface的缩写。WSGI是一组命令,有助于促进网络服务器和网络应用程序之间的通信。因此,WSGI的主要目的是将请求从网络服务器转发到后端,即Flask框架,并将Flask的响应返回给网络服务器。它有助于提高可扩展性,并在速度方面促进灵活性和效率。
Jinja2是一种模板系统,有助于将静态HTML模板与后端的动态数据结合起来。它允许在HTML中使用Python数据。例如:
Hello {{ username }} !
认为代码在做什么?从后端发送了一个动态的username变量,这取决于用户。这种模板风格是Jinja。Jinja不仅可以包含变量,甚至可以在Python中使用if-else语句、for循环等,只需稍作语法变化。大多数.html文件都存放在模板文件夹中。
使用Flask的一个重要优势是它的简单性和灵活性。它不强制遵循创建API时的某些僵化结构。它允许轻松进行单元测试,并且Flask有自己的调试器。使用Flask的另一个重要优势是它在其他Python框架中的速度。许多大公司如Netflix、Airbnb、Reddit、Uber都在使用Flask。
安装Flask:
pip install flask
如何创建一个简单的Flask API?
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
# 在这里进行更改
return 'Hello World'
if __name__ == '__main__':
# app.run(host, port, debug, options)
app.run(host="127.0.0.1", port=5000)
代码完成。在app.py相同的位置打开命令提示符。在CMD上:
set flask_app=app.py
flask run
上述代码将在127.0.0.1:5000上给出如下结果。
在本节中,将讨论添加到Flask中的图像分类器的代码。先决条件:了解CNN,可以阅读第一部分。CNN的库。可以在以下链接找到本节的完整代码:
安装以下所有模块:
flask==1.1.1
h5py==2.10.0
numpy==1.17.0
Pillow==6.1.0
tensorflow==2.3.1 OR pip3 install -r requirements.txt
app.py文件将被分解并详细解释每个部分。