flask REST 형태로 JSON API 서버를 만들다 보니,
음 그냥 HTML을 통해 동일한 API 함수를 사용하고 싶어진다.
머 보내기 전에 받아서 JSON 변경해서 api 함수를 콜하는 방식의 proxy 같은 것을 써도 되지만 하나의 기능은 한 군데 구현하면 좋을 듯 해서 찾아보니... 좋은 함수가 있다.
이해하기도 쉽게 이름도 is_json 이다.
Request 로 들어온 데이터가 JSON 인 경우와, 아닌 경우를 구분해 낼 수 있으니 원하는 형태의 구현이 가능할 듯 싶다.
간단하게 사용하고 있는 코드 일부만 가져와 보자.
if request.is_json :
body = request.get_json()
print(body)
retids = []
for item in body:
customer = Customer.objects.get(id=item["customer"])
order = Order(name=item["name"], customer=customer)
order.save()
retids.append({'id':str(order.id)})
else :
body = request.form
customer = Customer.objects.get(id=body["customer"])
order = Order(name=body["name"], customer=customer)
order.save()
return redirect("/list")
request.is_json 이 true 인 경우 JSON 방식의 api 처리를 하고, request.get_json()
그렇지 않는 경우, 일반 HTML form 처리 방식으로 이해하고 해당 변수들을 request.form으로 받아서 처리한다.
짧지만 끝 BJ.
James Wheeler 님의 사진, 출처: Pexels
'IT > 파이썬' 카테고리의 다른 글
파이썬 실행파일 만들기 - pyinstaller exe 실행파일 (0) | 2021.02.17 |
---|---|
파이썬 현재 시간 정보 가져오기 (0) | 2021.02.15 |
파이썬 mongodb mongoengine 데이터 가져오기 (0) | 2021.02.14 |
파이썬 mongodb MongoEngine 사용시 filter 함수 (0) | 2021.02.14 |
파이썬 flask Response JSON 리스트로 내보내기 (0) | 2021.02.13 |