PROJECTS

REST-framework-Tutorial ํ•ด๋ด…๋‹ˆ๋‹ค | QuickStart | Serializer

nicesugi 2022. 6. 24. 02:03

๐ŸŒˆ Github :    https://github.com/nicesugi/DRF.org-tutorial.git

 

... ์ •๋ง ๋„ˆ๋ฌด DRF ์–ด๋ ต๋‹ค๊ณ  ๋Š๊ปด์ ธ์„œ ๊ณต์‹ํ™ˆํŽ˜์ด์ง€์— ์žˆ๋Š” ํŠœํ† ๋ฆฌ์–ผ์„ ๋ชฉ๊ธˆ๋™์•ˆ ๊ณต๋ถ€ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค.

์ด ํŠœํ† ๋ฆฌ์–ผ์€ ๋‚ด๊ฐ€ ๋ฐฐ์šด ๋ฐฉ์‹์ด๋ž‘์€ ๋‹ค๋ฅธ๋ฐ,

ํŠœํ† ๋ฆฌ์–ผ 1์— ๋‚˜์˜ค๋Š” ์‹œ๋ฆฌ์–ผ๋ผ์ด์ €์—์„œ ์–ด๋–ป๊ฒŒ ๋‚˜์˜ค๋Š”์ง€ ์–ด๋–ค๋ฐฉ์‹์ธ์ง€ ์•Œ ์ˆ˜ ์žˆ์–ด์„œ ๋ณด๊ธฐ๋„ ์ข‹๊ณ 

์ƒˆ๋กœ์šด ์ฝ”๋“œ์™€ ๋ฉ”์†Œ๋“œ๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜์–ด ์žฌ๋ฐŒ์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

.. ๊นƒ์— ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋งŒ ์Œ“์—ฌ๊ฐ€๋Š” ์ด ๊ธฐ๋ถ„..

๋‹ค์Œ์ฃผ๋ถ€ํ„ฐ ๋ถ€ํŠธ์บ ํ”„ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ณ„์† ์‰ฌ์ง€์•Š๊ณ  ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๋Š”๋ฐ

์Œ“์—ฌ๊ฐ€๋Š” ๋ ˆํฌ์ง€ํ† ๋ฆฌ ๋งˆ๋ฌด๋ฆฌ์™€ ๋ณ‘ํ–‰์ด..์„.. ํ•ด์•ผ๋œ๋‹ค..

์ทจ์—…ํ•˜๊ธฐ ์ „๊นŒ์ง€ ๋ถ€์ง€๋Ÿฐํžˆ 1์ผ 1ํ‘ธ์‹œ 1ํฌ์ŠคํŒ… ๊ฐ€์ž!


โ˜€๏ธ QuickStart

โ˜€๏ธ Tutorial 1 : Serializer

์ข‹๊ณ  ๋” ์•Œ์•„๋ด์•ผ๊ฒ ๋‹ค๋Š” ๋ถ€๋ถ„์œผ๋กœ๋Š” ,

1. ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๋‚˜์˜ค๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ (์ฝ”๋“œ์™€ ํ„ฐ๋ฏธ๋„์‚ฌ์ง„์€ ๊ฐ™์€ ๋‚ด์šฉ์ž„. ์•„๋ž˜๋ฅผ ๋ณด์‹œ๋Š”๊ฒŒ ๋” ์ข‹์Šต๋‹ˆ๋‹ค)

2. ์‹œ๋ฆฌ์–ผ๋ผ์ด์ €์˜ ์—ญํ•  : ModelSerializer๋ฅผ ์‚ฌ์šฉํ•ด์„œ Formํด๋ž˜์Šค์™€ ModelFormํด๋ž˜์Šค์˜ ๋งŽ์€ ์ •๋ณด๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” '๋‹จ์ˆœ ์ง๋ ฌ ๋ณ€ํ™˜๊ธฐ ํด๋ž˜์Šค'๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์œ„ํ•จ์œผ๋กœ '์ž๋™ ํ•„๋“œ ์ง‘ํ•ฉ'

3. python manage.py shell : ๋งค๋ฒˆ ์„œ๋ฒ„๋ฅผ ๋Œ๋ฆด ํ•„์š”์—†๋‹ค๋Š” ํŽธ๋ฆฌํ•จ !!!!

 

* ์ธ์Šคํ„ด์Šค ์ค‘ ํ•˜๋‚˜๋ฅผ ์ง๋ ฌํ™” 

content = JSONRenderer().render(serializer.data)
content

* ์ง๋ ฌํ™” ํ”„๋กœ์„ธ์Šค๋ฅผ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ json 

serializer = SnippetSerializer(data=data)
serializer.is_valid()
serializer.validated_data

* ์—ญ์ง๋ ฌํ™”(์ŠคํŠธ๋ฆผ์„ Python ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์œ ํ˜•์œผ๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ ํ›„ ํ•ด๋‹น ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์œ ํ˜•์„ ์™„์ „ํžˆ ์ฑ„์›Œ์ง„ ๊ฐœ์ฒด ์ธ์Šคํ„ด์Šค๋กœ ๋ณต์›

SnippetSerializer(Snippet.objects.all(), many=True)

* ๋ชจ๋ธ ์ธ์Šคํ„ด์Šค ๋Œ€์‹  ์ฟผ๋ฆฌ ์„ธํŠธ๋ฅผ ์ง๋ ฌํ™”(many=True) ์ถ”๊ฐ€

serializer = SnippetSerializer(Snippet.objects.all(), many=True)
serializer.data

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™•์ธ 1
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ™•์ธ 2
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค - project
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค - app
Web API์— ๋Œ€ํ•œ ์ฒซ ๋ฒˆ์งธ ์‹œ๋„ ํ…Œ์ŠคํŠธ

 

 

๊ทผ๋ฐ ์˜๋ฌธ์ž…๋‹ˆ๋‹ค.

์™œ ์ €๋Š” ๋‹ค๋ฅด๊ฒŒ ์ƒ๊ฒผ์„๊นŒ์š”?๐Ÿคท‍โ™€๏ธ

์—ฌ๊ธฐ๋Š” ์™œ ๋‹ค๋ฅผ๊นŒ์š”?

 

๋ฐ˜์‘ํ˜•