Bibi's DevLog ๐ค๐
[MyPick31] ์๋ฐ์คํฌ๋ฆฝํธ-ํ์ด์ฌ ajax ๋ฐฐ์ด ์ ์ก-JSON.stringify(), json.loads() ๋ณธ๋ฌธ
[MyPick31] ์๋ฐ์คํฌ๋ฆฝํธ-ํ์ด์ฌ ajax ๋ฐฐ์ด ์ ์ก-JSON.stringify(), json.loads()
๋น๋น bibi 2020. 11. 7. 15:58ajax๋ก ํ์ด์ฌ ์๋ฒ์ ๋ฐฐ์ด ์ ์กํ๊ธฐ - JSON.stringify(), json.joads()
๋ฒ ์ด์ค ํํฐ๋ง ๊ธฐ๋ฅ์ ๋ง๋๋ ์ค.
์ฒดํฌ๋ ๋ฒ ์ด์ค๋ฅผ ๋ฐฐ์ด์ ๋ฃ์ด ajax๋ฅผ ํตํด ํ์ด์ฌ ์๋ฒ๋ก ๋ณด๋ด์ผ ํ๋ค.
stackoverrun.com/ko/q/12236021 ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
blog.naver.com/PostView.nhn?blogId=oihijkoh&logNo=220510265057&redirect=Dlog&widgetTypeCall=trueใ
์์ ์ง๋ ฌํ, ์ญ์ง๋ ฌํ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
๐ ๋ฐฐ์ด์ ์ ์กํ ๋๋ json๋ฐฉ์์ผ๋ก serialize(์ง๋ ฌํ), deserialize(์ญ์ง๋ ฌํ)ํ๋ ๊ณผ์ ์ด ํ์ํ๋ค.
(์? ๋ฐฐ์ด๋ ๊ฐ์ฒด์ด๋ฏ๋ก. ๊ฐ์ฒด๋ ์ง๋ ฌํํด์ ์ ์กํด์ผ ํ๋ค)
serialization ์ง๋ ฌํ
: ๊ฐ์ฒด๋ฅผ ์ฝ๊ฒ ์ฎ๊ธธ ์ ์๋ ํํ๋ก ๋ณํํ๋ ๊ณผ์ .
์ง๋ ฌํ๋ ๊ฐ์ฒด๋ HTTP๋ฅผ ์ฌ์ฉํด ํด๋ผ์ด์ธํธ-์๋ฒ ๊ฐ ์ฎ๊ธธ ์ ์๋ค.
deserialization ์ญ์ง๋ ฌํ
์ง๋ ฌํ์ ๋ฐ๋๋๋ ๊ธฐ๋ฅ. ์ง๋ ฌํ๋ ๊ฐ์ฒด๋ฅผ ์ฌ๊ตฌ์ฑํจ.
(์๋ฐ์คํฌ๋ฆฝํธ - ajax)
JSON.stringify()
: ๊ฐ์ฒด๋ฅผ jsonํ์์ผ๋ก serializeํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ตฌ๋ฌธ.
๋๋ ์๋์ ๊ฐ์ด ์ฌ์ฉํ๋ค.
// script์์ญ.
var checkedBases = [/*์ด๋ค ๋ด์ฉ์ ๋ฐฐ์ด*/];
jQuery.ajaxSettings.traditional = true; // ajax๋ก ๋ฐฐ์ด ๋ณด๋ผ๋ ํ์ ๊ตฌ๋ฌธ.
$.ajax({
type: "POST",
url: "/checkBase",
data: {
sendBases: [JSON.stringify({checkedBases: checkedBases})]
},
success: function (response) {
if (response['result'] == 'success') {
console.log(response['msg']);
}
}
})
(ํ์ด์ฌ)
json.loads()
: serialized ๊ฐ์ฒด๋ฅผ deserialize ํ๋ ํ์ด์ฌ ๊ตฌ๋ฌธ.
๋๋ ์๋์ ๊ฐ์ด ์ฌ์ฉํ๋ค.
import json
# ...
@app.route('/checkBase', methods=["POST"])
def checkBase() :
sendBases = request.form["sendBases"]
print(json.loads(sendBases))
return (jsonify({'result': 'success', 'msg': "์๋ฒ์ ์ฐ๊ฒฐ๋์์-๋ฒ ์ด์ค"}))
print(json.loads(sendBases))๋ก ์๋ฒ์ ์ถ๋ ฅ๋๋ ํํ๋ ๋ค์๊ณผ ๊ฐ๋ค.
{'checkedBases': ['๋ฐ๋๋ผ', '์ด์ฝ๋ฆฟ', '๊ณผ์ผ']}
ํ์ด์ฌ ๋ณต์ต..
๋์
๋๋ฆฌ ๋ฐ์ดํฐ ์ฝ์ด์ฌ ๋.
pythonstudy.xyz/python/article/205-JSON-%EB%8D%B0%EC%9D%B4%ED%83%80 ๋ฅผ ์ฐธ๊ณ ํ์ต๋๋ค. ๊ฐ์ฌํฉ๋๋ค.
(jsonํ์ ์ฝ์ด์ค๋ ๋ฐฉ๋ฒ๋ ๋์์์)
dict = {"name" : "bibi"}
name = dict['name']
# ๋ณ์ name์ 'bibi' ๊ฐ ๋๋ค.
ํ์ด์ฌ for๋ฌธ ์ค๋ฅ
TypeError: list indices must be integers or slices, not str
-> '๋ฆฌ์คํธ์ ์ธ๋ฑ์ค๋ ๋ฌธ์์ด์ด ์๋๋ผ ์ ์์ฌ์ผํ๋ค.'
www.codeit.kr/community/threads/7 ๊ฐ์ฌํฉ๋๋ค.
ํ์ด์ฌ for๋ฌธ์ด๋ ๋ค๋ฅธ ์ธ์ด for๋ฌธ์ด๋ ๋๋ฌด ํท๊ฐ๋ฆฐ๋คใ ใ
numbers = ['one', 'two', 'three', 'four', 'five']
for n in numbers:
# print(number[n]) ์ด๋ ๊ฒ ์ถ๋ ฅํ๋ ๊ฒ ์๋
print(n) #์ผ๋ก ์ถ๋ ฅํด์ผ
# 'one' 'two' .. ๊ฐ ์ถ๋ ฅ๋๋ค.
ํ์ฌ์ํ
- ์ฒดํฌ๋ base๋ค์ ๋ฐฐ์ด์ ๋ด์ ์๋ฒ๋ก ๋ณด๋ด๊ธฐ - ๐
- cbaseArr, cbase1Arr ๋ ๋์
๋๋ฆฌ ํํ๋ก ๋ง๋ฆ. - ๐
- cbase2Arr๋ ๋ง๋๋ ์ค.
ํ ์ผ
- ๋์
๋๋ฆฌ๊ฐ ์๋ ๋ฆฌ์คํธ ํํ๋ก cbaseArr, cbase1Arr, cbase2Arr๋ฅผ ๋ง๋ค์ด์ผ๊ฒ ๋ค.
๊ตณ์ด ํค:๊ฐ ํํ๋ก ๋ง๋ค ํ์๋ ์๊ณ ๋ณต์กํ๊ธฐ๋ง ํ๋ค.
ํ์ด์ฌ์ด๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ ๋ฌธ๋ฒ ํท๊ฐ๋ฆฐ๋ค..
wikidocs.net/14๋ฆฌ์คํธ ์๋ฃํ - ์ ํ ํฌ ํ์ด์ฌ
์ ๋ ๋งํฌ๋ฅผ ์ ์ฝ์ด๋ณด๋ฉฐ Arr๋ค์ ๋จ์ํํ์.
'Projects > (ํ)MyPick31' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[MyPick31] ๋ฒ ์ด์ค ํํฐ๋ง ํ๊ตฌ (0) | 2020.10.29 |
---|---|
[MyPick31] ํํฐ๋ง๊ธฐ๋ฅ ๊ฐ๋ฐ์์ - ๋ฒ ์ด์ค๋ถํฐ. (0) | 2020.10.26 |
[MyPick31] ํ๋ก์ ํธ ์งํ ์ฌ๋ ผ์! (0) | 2020.10.22 |
Git Branch ํ์ฉ! / mongoDB ์๊ฒฉ์ ์ฅ(AWS) / ๊ด๋ฆฌ์์ฉ DB CRUD - Create API ์์ฑ ๋ฐ category๋ฐ์ดํฐ ์ฝ์ (0) | 2020.10.08 |
DB๋ฅผ ์ํ ๊ด๋ฆฌ์ CRUD API(ing) (0) | 2020.10.06 |