jQuery AJAX¸¦ ÀÌ¿ëÇØ POST ¹æ½ÄÀ¸·Î ¼¹ö·Î JSONÀ» ¿äûÇÏ°í JSONÀ» ÀÀ´ä ¹Þ¾Æ º¸ÀÚ.¼¹ö·Î ¹«µ¥ÀÌÅÍ ¿äûÈÄ JSONÀ¸·Î ¹Þ±âhtml ÆÄÀÏhtml <input type="button" name="btn-test" id="btn-none_to_json" value="post, ¼¹ö URI: /main/none_to_json" /> ÀÚ¹Ù½ºÅ©¸³Æ® $("#btn-none_to_json").on("click", function () { ajax_post_none_to_json(); }); function ajax_post_none_to_json(){ var request = $.ajax({ type: 'POST', url: "/main/none_to_json", data: undefined, contentType: 'application/json;charset=utf-8', //request data type dataType: 'json', //response dataType cache: false, async: true, timeout: 30000, success: function(objs) { alert("ajax HTTP Åë½Å ¼º°ø"); $("#response_result").text("ajax_post_none_to_json : response success"); }, error : function() { alert("ajax HTTP Åë½Å ½ÇÆÐ. °ü¸®ÀÚ¿¡°Ô ¹®ÀÇÇϼ¼¿ä."); } }); } //end of ajax_none_to_json ÆÄÀ̽ã ÆÄÀÏ @bp.route('/none_to_json', methods=['POST'])
def none_to_json(): print('Request URL: http://127.0.0.1:8888/main/none_to_json') from flask import jsonify userlist = list() data = {'username': 'kim', 'userid': '777'} userlist.append(data) data = {'username': 'lee', 'userid': '888'} userlist.append(data) response = jsonify(userlist) print(userlist) #response = json.dumps(userlist, default=str, ensure_ascii=False) return response, 201 Ŭ ¶óÀ̾ðÆ®¿¡¼ ¿äû(º¸³»±â) ¼¹ö·Î º¸³¾ µ¥ÀÌÅÍ°¡ ¾ø±â ¶§¹®¿¡ data´Â ÁÖ¼® ó¸®ÇÑ´Ù. ¼¹ö¿¡¼ ¹ÞÀ» µ¥ÀÌÅÍ Å¸ÀÔÀº jsonÀ¸·Î ¼³Á¤ÇÑ´Ù. ¼ ¹ö¿¡¼ ÀÀ´ä(¹Þ±â) Çöó½ºÅ© ¼¹ö¿¡¼´Â µñ¼Å³Ê¸® µ¥ÀÌÅÍ ¸®½ºÆ®¸¦ jsonify³ª json.dumps ÇÔ¼ö·Î jsonÀ¸·Î º¯È¯ÈÄ ¸®ÅÏÇÑ´Ù. JSONÀ¸·Î º¸³»°í JSONÀ¸·Î ¹Þ±âhtml ÆÄÀÏ<input type="button" name="btn-test"
id="btn-json_to_json" value="¼¹ö URI: /main/json_to_json" />
$("#btn-json_to_json").on("click", function () { ajax_post_json_to_json(); }); function ajax_post_json_to_json(){ var URI = "/main/json_to_json" var PARAMETER = JSON.stringify({"username": "apple", "userid": 33}) var request = $.ajax({ type: 'POST', url: URI, data: PARAMETER, contentType: 'application/json;charset=utf-8', dataType: 'json', cache: false, async: true, timeout: 30000, statusCode: { 201: function() { console.log( "statusCode 201 response success" ); } }, success: function(objs, textStatus, jqXHR) { alert("ajax HTTP Åë½Å ¼º°ø"); console.log("objs=", objs); console.log("objs[0]=", objs[0]); objs.forEach(function(obj) { console.log("obj=", obj); }); console.log("success jqXHR status=", jqXHR.status); console.log("success jqXHR responseJSON", jqXHR.responseJSON); }, error : function(jqXHR) { alert("ajax HTTP Åë½Å ½ÇÆÐ. °ü¸®ÀÚ¿¡°Ô ¹®ÀÇÇϼ¼¿ä."); alert(jqXHR) } }); } //end of ajax_post_json_to_json ÆÄÀ̽ã ÆÄÀÏ @bp.route('/json_to_json', methods=['POST'])
def json_to_json(): print('Request URL: http://127.0.0.1:8888/main/json_to_json') client_json = request.get_json(silent=True) print(f"data = {client_json}") user_record = model.User.query.filter( model.User.username == client_json['username'], model.User.userid == client_json['userid']).first() print(user_record.serialize) response = json.dumps([user_record.serialize], default=str, ensure_ascii=False) return response, 201 Ŭ ¶óÀ̾ðÆ®¿¡¼ ¿äû(º¸³»±â) ¿äû µ¥ÀÌÅÍ Å¸ÀÔÀ» jsonÀ¸·Î ÁöÁ¤ÇÑ´Ù. contentType: 'application/json;charset=utf-8', ¹ÞÀ» µ¥ÀÌÅÍ Å¸ÀÔÀ» jsonÀ¸·Î ÁöÁ¤ÇÑ´Ù. dataType: 'json', data¿¡ º¸³¾µ¥ÀÌÅ͸¦ ÁöÁ¤ÇÑ´Ù. Å°¿Í µ¥ÀÌÅ͸¦ JSON.stringify ÇÔ¼ö·Î JSONÀ¸·Î º¯È¯ÈÄ¿¡ data ¼Ó¼ºÀ» ÁöÁ¤ÇÑ´Ù. var PARAMETER = JSON.stringify({"username": "apple", "userid": 33}) data: PARAMETER, ¼ ¹ö¿¡¼ ÀÀ´ä(¹Þ±â) Çöó½ºÅ© ¼¹ö¿¡¼´Â µñ¼Å³Ê¸® µ¥ÀÌÅÍ ¸®½ºÆ®¸¦ jsonify³ª json.dumps ÇÔ¼ö·Î jsonÀ¸·Î º¯È¯ÈÄ ¸®ÅÏÇÑ´Ù. request.get_jsonÀ» ÀÌ¿ëÇØ °ªÀ» ±¸ÇÑ´Ù. jsonÀÇ Å°¸¦ ÀÌ¿ëÇØ °ªÀ» ±¸ÇÏ´Â ¹æ¹ýÀº ´ÙÀ½°ú °°´Ù. client_json
=
request.get_json(silent=True)
client_json['username'] client_json['userid'] model.User.query.filter ÇÔ¼ö·Î µ¥ÀÌÅͺ£À̽º¿¡¼ °Ë»öÇÑ´Ù. json.dumps ÇÔ¼ö·Î JSONÀ¸·Î º¯È¯ÈÄ ÀÀ´äÇÑ´Ù. ´Ù¿î·Îµå: /templates/test.html controller/main_controller.py ajax_test.zip |