Python 如何拒绝http请求(抛出一些代码错误)

Python 如何拒绝http请求(抛出一些代码错误),python,api,flask,request,Python,Api,Flask,Request,这是我的代码,我需要将“阻止”返回改为合法请求拒绝,我怎么做 @app.route('/api/echo-json', methods=['GET', 'POST', 'DELETE', 'PUT']) def add(): data = request.get_json() dt_string = datetime.now() objeto = Requisicao(data,dt_string) if len(lista)<2: li

这是我的代码,我需要将“阻止”返回改为合法请求拒绝,我怎么做

@app.route('/api/echo-json', methods=['GET', 'POST', 'DELETE', 'PUT'])
def add():

    data = request.get_json()
    dt_string = datetime.now()
    objeto = Requisicao(data,dt_string)

    if len(lista)<2:
        lista.append(objeto.id)
        lista.append(objeto.hora)
        return 'PASS'

    for i in range(0,len(lista),2):
        if lista[i] == objeto.id and objeto.hora < lista[i+1] + timedelta(seconds=10):
            return 'BLOCKED'

    else:
        lista.append(objeto.id)
        lista.append(objeto.hora)
        return 'PASS'
@app.route('/api/echo-json',方法=['GET',POST','DELETE','PUT']
def add():
data=request.get_json()
dt_string=datetime.now()
objeto=Requisicao(数据,dt_字符串)

如果len(lista)您想返回一个错误,而不是通常的成功?类似这样的方法可能会奏效:

return jsonify(success=False, errors=errors), 500
或者,您可以在Python中引发错误?我会看看这里


您只需返回一个元组,其中第一项是消息,第二项是HTTP错误代码

我不确定从您的代码中您想要返回什么样的响应,但是400(错误请求)可能适合API。以下是完整的列表:


您可能希望返回HTTP错误,如400。有关HTTP错误代码的链接,请参见其他答案。答案的变体,更接近您的代码:

@app.route('/api/echo-json', methods=['GET', 'POST', 'DELETE', 'PUT'])
def add():
    ...
    if ...:
        ...
        return 'PASS'

    for ...:
        if ...:
            return 'BLOCKED', 403

    ...

你是说HTTP错误代码吗?哪一个?是的,403禁止但拒绝了请求?或者只返回400?只需将400替换为所需的错误代码(相应地编辑)就可以了,这里的错误将是实际错误。例如,在此之前,您可以添加错误='blocked'
@app.route('/api/echo-json', methods=['GET', 'POST', 'DELETE', 'PUT'])
def add():
    ...
    if ...:
        ...
        return 'PASS'

    for ...:
        if ...:
            return 'BLOCKED', 403

    ...