Python Flask POST端点返回“确定”,而不返回没有引号的确定

问题描述

我在Python Flask中编写了一个POST端点,以字符串形式(不带引号)获得响应OK。但是,在测试API后,API会以“确定”(带引号)响应。 Ipkiss Tester中的结果如下:

*❌ Reset state before starting tests
POST /reset
Expected: 200 OK
Got:      200 "OK"

是否有解决此问题的建议?。

谢谢。

代码下方:

from flask import Flask,request,jsonify
from flask_restful import abort,Api,reqparse,Resource
from flask_api import status

class AccountModel:
    def __init__(self,accnum):
        # We will automatically generate the new id
        self.id = accnum
        self.balance = 0

class AccountManager():
    def __init__(self):
        self.accounts = {}

    def delete_accounts(self):
        if not bool(self.accounts):
            del self.accounts
        self.accounts = {}


account_manager = AccountManager()

class ResetAccount(Resource):
    def post(self):
        if str(request.url_rule) =="/reset":
            account_manager.delete_accounts()
            return   "OK",status.HTTP_200_OK
        else:
            abort(
                status.HTTP_404_NOT_FOUND,message=str(status.HTTP_404_NOT_FOUND) + " " + "0".format())


app = Flask(__name__)
service = Api(app)

service.add_resource(ResetAccount,'/reset',endpoint='reset_endpoint')


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

解决方法

感谢您@zvone的评论。

它是根据How to return plain text from flask endpoint? Needed by Prometheus中描述的解决方案解决的。

解决方案是使用“ flask.make_response”并定义“ response.mimetype =“ text / plain””,如参考文献中所述