Flask在heroku上不能识别POST方法。

问题描述 投票:0回答:1

我想发一个帖子请求,但我得到错误的405:方法不允许。

@app.route('/')
def hello_world():
     return 'Hello World!'



@app.route('/register', methods=['POST'])
def register_user():
    user_info = request.get_json()
    if request.method == 'POST':
        user = User.query.filter_by(username = user_info['username']).first()
        if user is not None:
            return jsonify({"msg":"User already exists!"}), 404
        saved_user = User(username=user_info['username'], password=user_info['password'])
        db.session.add(saved_user)
        db.session.commit()
        return ""
    return "", 200

这是我的请求。

    r = requests.post('https://myapp.herokuapp.com/register',json = {'username':'testname','password':'testpsw'})
    assert r.status_code == 200 

如果我把它改成methods = ['GET', 'POST']它只是做了一个get。

python flask post get flask-restful
1个回答
0
投票

修改下面一行。

r = requests.post('https://myapp.herokuapp.com/register',json{'username':'testname','password':'testpsw'})

对此:

r = requests.post('http://localhost:5000/register', json = {'username':'testname','password':'testpsw'})

你需要将对象分配给 requests.post 函数的第二个参数 "json",这样请求才能正常工作。

© www.soinside.com 2019 - 2024. All rights reserved.