使用Python Flask创建Restful API


什么是烧瓶

Flask是用于Python的轻量级Web应用程序框架。
Django也是Python中使用的流行框架,但是
对于简单的LINE bot和智能扬声器应用程序等中小型Web应用程序,建议使用Flask,因为它轻巧且易于创建。

Flask正在制作一个可以执行instagram诊断(图像诊断)的LINE聊天机器人,该机器人结合了Microsoft Azure Vision AP和Recruit API的以下功能。

结合了Recruit的人工智能API和Microsoft的Vision API的Meat instagram诊断LINE机器人的完成。语言是Python。环境是Heroku。 #我想与刚刚起步的工程师建立联系pic.twitter.com/D2k3x8rHJ9

—赛(@ saisan78)2018年12月9日

安装烧瓶

1
$ pip install flask

如果您担心

版本,请对其进行升级。

1
pip install --upgrade flask

尝试Hello World

1
2
3
4
5
6
@app.route("/")
def index():
    return "Hello World! ハローワールド!"

if __name__ == "__main__":
    app.run()

由GET接收并返回JSON

要接收与Flask的GET通信,可以通过在方法中指定GET来接收POST请求。

1
2
3
4
5
6
7
8
9
10
11
12
13
@app.route('/get_request', methods=['GET'])
def post_request():
    output = { ##※ここのJSONフォーマットは自由だよ
        "version":"1.0",
        "response":{
                "outputSpeech":{
                    "type":"PlainText",
                    "text":"ハロー"
                }
            }
    }

    return jsonify(output)

接收POST并返回JSON

要接收与Flask的POST通信,可以通过在方法中指定POST来接收POST请求。

1
2
3
4
5
6
7
8
9
10
11
12
13
@app.route('/post_request', methods=['POST'])
def post_request():
    output = { ##※ここのJSONフォーマットは自由だよ
        "version":"1.0",
        "response":{
                "outputSpeech":{
                    "type":"PlainText",
                    "text":"ハロー"
                }
            }
    }

    return jsonify(output)

使用jsonify将日语字符弄乱时的解决方案

Flask的应用程序配置将JSON_AS_ASCII定义为默认设置,并且设置app.config [\\'JSON_AS_ASCII \\'] = False最终将在json.dumps中设置sure_ascii。
制作处理日语的应用程序的人应该小心。

参考:解析jsonify中的乱码日语字符的代码

1
2
3
4
from flask import Flask, jsonify

app = Flask(__name__)
app.config['JSON_AS_ASCII'] = False