@app.route('/test')
def test():
msg = request.form['msg']
return msg
curl -X POST -d 'msg = test' 127.0.0.1:5000/test
curl -X POST -F 'msg = test' 127.0.0.1:5000/test
The method is not allowed for the requested URL
127.0.0.1 - - [13/Oct/2022 03:18:18] "POST /test HTTP/1.1" 405
CodePudding user response:
You are making a POST request with curl, but you have only defined your route for a GET request. You need to write:
@app.route('/test', methods=['POST'])
def test():
msg = request.form['msg']
return msg
And then use the -F argument to curl:
curl -F msg=test localhost:5000/test
CodePudding user response:
The error to lookout for is
The method is not allowed for the requested URL
You may require both POST and GET here. Not mentioning methods parameter in @app.route() defaults it to GET only. So, you would need to add that parameter to enable serving POST requests.
So, your first line should be as
@app.route('/test', methods=['POST', 'GET'])
and your problem should be resolved.
