jsonify와 render_template 함께 사용하기

·2022년 5월 11일
0

팀프로젝트를 하던 중 json으로 넘겨서 javascript로 처리를 하는 구문을
jinja2 방식으로 바꾸기 위해 render_template로 처리를 해야만 했다.
하지만 jinja2와 render_template 둘다 사용할 수 있는 방법이 없을지 찾아보던 도중
스택오버플로우에선 api호출과 web호출을 구분하는 방식을 제시했다.

방법1)

@app.route("/result", methods=['POST', 'GET'])
def result():
   if request.method == 'POST':
       query = request.form['query']
       response = MyService.retrieve_response(query)
       if request.headers['Content-Type'] == 'application/json':
           return jsonify(...)
       return render_template("index.html", value=response)

방법1)

@app.route("/web/result")
def result_html():
   response = MyService.retrieve_response()
   return render_template("index.html", value=response)

@app.route("/api/result")
def result_json():
   response = MyService.retrieve_response()
   return jsonify(response)

사실 결과적으로는 내가 원하던 방식은 아니었지만😅
추후 쓰일 수 있는 방법인 것 같아 기록해두기!

profile
나 예인쓰, 응애인디

0개의 댓글