我实际上正在使用Flask。
我使用Flask来运行一个服务器,该服务器将由Chrome扩展程序(js)请求。
从扩展程序请求服务器非常简单:我使用chrome.runtime.sendMessage()方法。此方法还提供了一个回调函数,以JSON对象(服务器响应)作为参数。
例如,假设我的服务器上有这个路由:
然后,在我的扩展程序中,更准确地说,在回调函数中,我可以检查成功值:
但现在,我的团队不想再依赖这个了,而是想使用HTTP错误代码。我知道Flask有一个中止函数,但在阅读文档时,我很难理解它到底是做什么的。当我在我的路由中调用时:
这段文本的意思是:“我该如何在扩展(js)中使用这些信息?当调用abort函数时,Flask是否会自动返回特定的JSON对象?我该如何检查错误代码?我想在客户端代码中实现这样的操作:”。
我得到的线索之一是阅读关于abort()的所有StackOverflow帖子,使用装饰器@app.errorhandler(code)定义一个特定的错误函数:
但我认为有更简单的方法。
谢谢你的帮助。
我使用Flask来运行一个服务器,该服务器将由Chrome扩展程序(js)请求。
从扩展程序请求服务器非常简单:我使用chrome.runtime.sendMessage()方法。此方法还提供了一个回调函数,以JSON对象(服务器响应)作为参数。
例如,假设我的服务器上有这个路由:
@app.route('/users', methods=['POST'])
def api_login():
if 'username' not in request.json :
return jsonify(success=false)
else :
return jsonify(success=true)
然后,在我的扩展程序中,更准确地说,在回调函数中,我可以检查成功值:
function(response) {
if(response.success){
console.log("Login ok !")
}
}
但现在,我的团队不想再依赖这个了,而是想使用HTTP错误代码。我知道Flask有一个中止函数,但在阅读文档时,我很难理解它到底是做什么的。当我在我的路由中调用时:
else:
abort(422, {"error":"Missing parameters"})
这段文本的意思是:“我该如何在扩展(js)中使用这些信息?当调用abort函数时,Flask是否会自动返回特定的JSON对象?我该如何检查错误代码?我想在客户端代码中实现这样的操作:”。
if(response.status == 422) {
console.log("Error")
}
我得到的线索之一是阅读关于abort()的所有StackOverflow帖子,使用装饰器@app.errorhandler(code)定义一个特定的错误函数:
@app.errorhandler(422)
def myErrorCase(error):
return jsonify(status=422, error="missing parameters")
但我认为有更简单的方法。
谢谢你的帮助。