我已经创建了一个简单的flask应用程序,我正在阅读python的响应:
response = requests.post(url,data=json.dumps(data), headers=headers )
data = json.loads(response.text)
现在我的问题是,在某些情况下,我想返回400或500个消息响应。到目前为止我是这样做的:
abort(400, 'Record not found')
#or
abort(500, 'Some error...')
这会在终端上打印消息:
但在API响应中,我总是得到500个错误响应:
编辑:
守则的结构如下:
|--my_app
|--server.py
|--main.py
|--swagger.yml
其中server.py有以下代码:
from flask import render_template
import connexion
# Create the application instance
app = connexion.App(__name__, specification_dir="./")
# read the swagger.yml file to configure the endpoints
app.add_api("swagger.yml")
# Create a URL route in our application for "/"
@app.route("/")
def home():
"""
This function just responds to the browser URL
localhost:5000/
:return: the rendered template "home.html"
"""
return render_template("home.html")
if __name__ == "__main__":
app.run(host="0.0.0.0", port="33")
而main.py拥有我用于API端点的所有函数。
例如:
def my_funct():
abort(400, 'Record not found')
当调用我的函数时,我得到的是终端上打印的“Record not found”,但不是来自API本身的响应,在那里我总是得到500个消息错误。
您可以返回一个状态为第二个元素的元组(400或500)。
从python调用API的示例:
以下是几年前我写的一个Flask应用程序的片段。它有一个400响应的例子
您有多种选择:
最基本的:
如果要访问头,可以获取响应对象:
或者您可以使它更加明确,不仅返回一个数字,还返回一个状态码对象
进一步阅读:
您可以在这里阅读有关前两个的更多信息:About Responses(烧瓶快速启动)
第三个是:Status codes(烧瓶API指南)
相关问题 更多 >
编程相关推荐