장고 사용자에게 API를 제공하는 Flask 앱이 있습니다. 내 소비자의 requests library을 사용하여 API를 사용합니다.Flask/Werkzeug 요청 개체가 매개 변수를 구성합니다.
내 문제는 다음과 같습니다. API를 테스트 할 때 request.form
의 POST 데이터를 얻습니다. 소비자 (요청 라이브러리 사용)에서 데이터를 얻었을 때 request.data
에 POST 데이터가 나타납니다.
예를 들면, 플라스크 응용 프로그램에서
API 엔드 포인트 : 플라스크 응용 프로그램에서
@mod.route('/customers/', methods=['POST'])
def create_prospect():
customer = Customer()
prospect = customer.create_prospect(request.form)
return jsonify(prospect.serialize()), 201
테스트 API 엔드 포인트 :
def test_creating_prospect(self):
with self.app.app_context():
data = {'name': 'Test company and co'}
response = self.client.post(self.url, data=data)
...
이 잘 작동 내 엔드 포인트에 request.form
을 채 웁니다.
요청을 사용, 내 장고 응용 프로그램에서 API를 소모 :이 내가 정보를 request.form
확인하고 있습니다로 실패 내 엔드 포인트에 request.data
채 웁니다
...
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
data = {'name': 'Test company and co'}
response = requests.post(url, data=data, headers=headers)
.
나는이 질문을 쓰는 동안 생각해 봤다. 어쩌면 json 헤더가 request.form
대신에 request.data
을 채우고있을 수 있습니까?
모든 의견을 감사드립니다.
편집 - 내 테스트에 헤더를 추가하는 시도, 잘 작동 :
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
response = self.client.post(self.url, data=data, headers=headers)