【发布时间】:2020-05-23 18:19:08
【问题描述】:
我正在尝试发出 post 请求,但我收到错误 405: method not allowed.
@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']
它只是一个得到。
【问题讨论】:
-
尝试将
user_info = request.get_json()保持在request.method行下方。错误还存在吗? -
我试过了,什么也没发生 :(
-
能否提供错误信息?也请尝试放置打印语句以找出代码不起作用的确切位置。我在本地尝试用打印语句替换
if request.method == 'POST':下的代码段,它对我来说效果很好。 -
这是我们在 heroku 中运行时的错误消息 ("GET /register HTTP/1.1" 405 178 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:74.0)壁虎/20100101 火狐/74.0")。所以它是一个 get 方法,但我想要一个帖子。
标签: python flask post heroku get