Plask에 JSON을 보내는 중, request.args vs request.형태
제가 알기로는.request.argsflask에는 에서의 URL 부호화 파라미터가 포함되어 있습니다.GET동안 요구하다request.form포함하다POST제가 이해하기 힘든 것은 왜 이 데이터를 보낼 때POST요청, 데이터 액세스 시도request.forma를 반환하다400에러입니다만, 접속하려고 하면,request.args잘 작동하는 것 같아요.
두 가지 모두 요청서를 보내 보았습니다.Postman그리고.curl결과는 동일합니다.
curl -X POST -d {"name":"Joe"} http://127.0.0.1:8080/testpoint --header "Content-Type:application/json"
코드:
@app.route('/testpoint', methods = ['POST'])
def testpoint():
name = request.args.get('name', '')
return jsonify(name = name)
당신은 POST-ing JSON입니다.request.args도 아니다request.form효과가 있습니다.
request.form는, 적절한 컨텐츠유형의 데이터를 POST 했을 경우에만 기능합니다.폼 데이터는 또는 인코딩과 함께 POST 됩니다.
사용할 때application/json폼 데이터를 POST하지 않게 되었습니다.대신 를 사용하여 JSON POST 데이터에 액세스합니다.
@app.route('/testpoint', methods = ['POST'])
def testpoint():
name = request.get_json().get('name', '')
return jsonify(name = name)
말씀하신 대로request.args요청 쿼리 문자열에 포함된 값만 포함되며 URL의 임의 부분은 다음입니다.?물음표URL의 일부이므로 POST 요청 본문과는 독립적입니다.
곱슬곱슬한 json 데이터가 잘못되었으므로 Flask는 데이터를 구문 분석하지 않습니다.
다음과 같은 데이터 전송:'{"name":"Joe"}'
curl -X POST -d '{"name":"Joe"}' http://example.com:8080/testpoint --header "Content-Type:application/json"
arg를 폼으로 바꾸기만 하면 됩니다.
@app.route('/testpoint', methods = ['POST'])
def testpoint():
name = request.form.get('name', '')`enter code here`
return jsonify(name = name)
언급URL : https://stackoverflow.com/questions/23326368/sending-json-to-flask-request-args-vs-request-form
'programing' 카테고리의 다른 글
| 문자열을 int64 유형의 Go 값으로 이동 해제할 수 없습니다. (0) | 2023.03.05 |
|---|---|
| redex 툴킷에서 리듀서와 엑스트라 리듀서의 차이점은 무엇입니까? (0) | 2023.03.05 |
| MAX(날짜)로 그룹화 (0) | 2023.03.05 |
| HTML 대신 javascript에서 필터를 사용하는 방법 (0) | 2023.02.28 |
| 각도 방향의 재귀 (0) | 2023.02.28 |