본문 바로가기

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

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.