Django-rest-framework: request.POST๋Š” ๊ฒ€์ƒ‰ ๊ฐ€๋Šฅํ•œ API๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฒŒ์‹œํ•  ๋•Œ ๋น„์–ด ์žˆ๋Š” querydict์ด๊ณ  hhtpie๋กœ ๊ฒŒ์‹œํ•  ๋•Œ .. ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 04์›” 11์ผ  ยท  4์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: encode/django-rest-framework

์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • [x ] Django REST ํ”„๋ ˆ์ž„์›Œํฌ์˜ master ๋ถ„๊ธฐ์— ํ•ด๋‹น ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • [x ] ๊ณต๊ฐœ ํ‹ฐ์ผ“๊ณผ ๋น„๊ณต๊ฐœ ํ‹ฐ์ผ“ ๋ชจ๋‘์—์„œ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๋ฅผ ๊ฒ€์ƒ‰ํ–ˆ์ง€๋งŒ ์ค‘๋ณต๋œ ํ•ญ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
  • [x] ์ด๊ฒƒ์€ ์‚ฌ์šฉ๋ฒ• ์งˆ๋ฌธ์ด ์•„๋‹™๋‹ˆ๋‹ค. (๋Œ€์‹  ํ† ๋ก  ๊ทธ๋ฃน ์œผ๋กœ ๋ณด๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.)
  • [x] ์ด๊ฒƒ์€ ํƒ€์‚ฌ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. (๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์ œ3์ž ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜•ํƒœ์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค.)
  • [x] ๋ฌธ์ œ๋ฅผ ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฒฝ์šฐ๋กœ ์ค„์˜€์Šต๋‹ˆ๋‹ค.
  • [x] ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์— ์‹คํŒจํ•œ ํ…Œ์ŠคํŠธ๋ฅผ ํฌํ•จ์‹œ์ผฐ์Šต๋‹ˆ๋‹ค. (๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋„ ๋ฌธ์ œ๋ฅผ ์ˆ˜๋ฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

    ์žฌํ˜„ ๋‹จ๊ณ„

1 ๋‹จ๊ณ„ . ๋ฐ์ดํ„ฐ๊ฐ€ apiview์— ๊ฒŒ์‹œ๋˜๋ฉด POST ์ฟผ๋ฆฌ๋”•ํŠธ๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

@api_view(['GET', 'POST'])
def snippet_list(์š”์ฒญ):
request.method == 'POST'์ธ ๊ฒฝ์šฐ:
pprint์—์„œ pprint๋ฅผ pp๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ
pp(์š”์ฒญ.๋ฐ์ดํ„ฐ)
pp(์š”์ฒญ.POST)
์ง๋ ฌ ๋ณ€ํ™˜๊ธฐ = SnippetSerializer(data=request.data)
serializer.is_valid()์ธ ๊ฒฝ์šฐ:
serializer.save()
๋ฐ˜ํ™˜ ์‘๋‹ต(serializer.data, status=status.HTTP_201_CREATED)
๋ฐ˜ํ™˜ ์‘๋‹ต(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

2 ๋‹จ๊ณ„ . ํƒ์ƒ‰ ๊ฐ€๋Šฅํ•œ API์—์„œ snippet_list apiview๋กœ '{"code": "print 123"}'์„ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์ƒ๋˜๋Š” ํ–‰๋™

๋‘ pprint์˜ ๊ฒฐ๊ณผ: {u'code': u'print 12dgdf3'}
<QueryDict: {}>

์‹ค์ œ ํ–‰๋™

๋‘ pprint์˜ ๊ฒฐ๊ณผ: {u'code': u'print 12dgdf3'}
{u'code': u'print 12dgdf3'}

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

mybad .. request.POST์—์„œ ์–‘์‹ ๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งž์•„์š”. request.data ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ชจ๋“  4 ๋Œ“๊ธ€

mybad .. ์˜ค์ง form-data is available in request.POST , ๋‚˜๋Š” Http POST๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณด๋‚ธ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ request.POST์— ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋ฅผ ๋‹ซ๊ณ , tnx

mybad .. request.POST์—์„œ ์–‘์‹ ๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋งž์•„์š”. request.data ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๊ณต์‹ ๋‹ต๋ณ€์„ ์ฐพ๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋Š” ๊ฒฝ์šฐ:

https://www.django-rest-framework.org/tutorial/2-requests-and-responses/#request -๊ฐ์ฒด

POST ๊ฐ€ ๋น„์–ด ์žˆ๋Š” ์ด์œ ๋ฅผ ์•„์ง ์ดํ•ดํ•˜์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. :(
ํŠœํ† ๋ฆฌ์–ผ์ด๋‚˜ ๋งํฌ๊ฐ€ ์žˆ๋‚˜์š”?

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰