环境 Flask2.2.2

 

代码如下

from flask import Flask, request

app = Flask(__name__)

@app.route('/test/', methods=['POST'])
def t():
    return {'out': 1}


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

报错 405

 

这是因为在路由时,仅仅允许POST请求,

当你访问url时,首先是做了一个GET请求;从浏览器提交参数后,才会做一个POST请求

因此,上述代码改为

from flask import Flask, request

app = Flask(__name__)

@app.route('/test/', methods=['GET', 'POST'])
def t():
    return {'out': 1}


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

可以了,不报405了

 

继续,代码修改如下

from flask import Flask, request

app = Flask(__name__)

@app.route('/test/', methods=['GET', 'POST'])
def t():
    if request.method == 'POST':
        return {'out': 1}


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

报500,其实是同样的问题

 

修改如下

from flask import Flask, request

app = Flask(__name__)

@app.route('/test/', methods=['GET', 'POST'])
def t():
    if request.method == 'POST':
        return {'out': 1}
    else:
        return {'out': 2}

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

 

以前的版本好像没这个问题,版本问题,头疼...

 

 

参考资料:

https://blog.csdn.net/miao0967020148/article/details/80278094