我是flask的新手,我想返回401错误,我没有使用身份验证,我只是使用参数api_key来检查用户是否通过身份验证。
我已经尝试过 abort(401)
和 return false
,但它返回错误 400“Bad Request”,这是返回 401 的默认方式。还是有不同的方式来做到这一点?
我的代码:
import flask
from flask import jsonify, request, Response
from flask_cors import CORS, cross_origin
from GoogleNews import GoogleNews
googlenews = GoogleNews()
googlenews.set_lang('en')
googlenews.set_period('1d')
googlenews.set_encode('utf-8')
app=flask.Flask(__name__)
cors = CORS(app)
app.config['CORS_HEADERS'] = 'Content-Type'
@cross_origin()
@app.route('/', methods=["GET"])
def return_news():
API_KEY = request.args['api_key']
if API_KEY == "xyz":
googlenews.get_news('TECHNOLOGY')
return jsonify(googlenews.result(True)[0:4])
else:
return Response(response="Unauthorized", status=401)
谢谢
答案 0 :(得分:0)
没有实际代码很难说,但我认为它不是使用flask abort() 而是python 内部abort() 函数。
检查下面的代码:
import flask
app = flask.Flask("aborter")
@app.route("/abort")
def abort():
return flask.abort(401)
if __name__ == '__main__':
app.run()
快乐编码
答案 1 :(得分:0)
相反,请尝试 flask.Response
对象。
from flask import Flask, Response
app = Flask(__name__)
@app.route("/abort")
def abort():
return Response(response="Unauthorized", status=401)
app.run()