๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โญ Personal_Study/Django

Django REST framework - Single Model

by ํฌ์ŠคํŠธ์‰์ดํฌ 2022. 10. 26.

Django REST framework - Single Model

โœ” ๋‹จ์ผ ๋ชจ๋ธ์˜ data๋ฅผ Serialization ํ•˜์—ฌ JSON ๋ฐ์ดํ„ฐ๋ฅผ ์‘๋‹ตํ•˜๋Š” Django ์„œ๋ฒ„ ๊ตฌ์ถ•

์‚ฌ์ „ ์ค€๋น„

  1. postman ์„ค์น˜
  2. models migrate
  3. json ๋”๋ฏธ๋ฐ์ดํ„ฐ loadํ•˜๊ธฐ
  4. djangorestframework ์„ค์น˜ํ•˜๊ธฐ

ModelSerializer

Model Serializer

โœ” ๋ชจ๋ธ ํ•„๋“œ์— ํ•ด๋‹นํ•˜๋Š” ํ•„๋“œ๊ฐ€ ์žˆ๋Š” Serializer ํด๋ž˜์Šค๋ฅผ ์ž๋™์œผ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” shortcut์ œ๊ณต

  1. Model ์ •๋ณด์— ๋งž์ถฐ ์ž๋™์œผ๋กœ ํ•„๋“œ ์ƒ์„ฑ
  2. serializer์— ๋Œ€ํ•œ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ธฐ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑ
  3. .create() ๋ฐ .update()์˜ ๊ฐ„๋‹จํ•œ ๊ธฐ๋ณธํ˜• ํฌํ•จ

  1. Model Serializer ์ž‘์„ฑํ•˜๊ธฐ
    image
  2. shell_plus ์‹คํ–‰ ๋ฐ ArticeListSerializer import
    image
  3. ์ธ์Šคํ„ด์Šค ๊ตฌ์กฐ ํ™•์ธํ•˜๊ธฐ
    image
  4. Model instance ๊ฐ์ฒด serialize
    image
  5. QuerySet ๊ฐ์ฒด serialize
    image
    โœ” QuerySet ๊ฐ์ฒด๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค...!
  6. Many = True ์˜ต์…˜ ์„ค์ •
    image
    โœ” ์ •์ƒ์ ์œผ๋กœ ์ถœ๋ ฅ์ด ๋œ๋‹ค.RESTful API - Article
  7. GET - List
  8. url ๋ฐ view ํ•จ์ˆ˜ ์ž‘์„ฑ
    image
    image
    โœ” ๊ฒŒ์‹œ๊ธ€ ๋ฐ์ดํ„ฐ ๋ชฉ๋ก ์กฐํšŒํ•˜๊ธฐ
    โœ” DRF์—์„œ api_view ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ ์ž‘์„ฑ์€ ํ•„์ˆ˜
  9. ์‘๋‹ต ํ™•์ธ
    image
    image
    โœ” Postman์œผ๋กœ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ์Œ

api_view decorator

โœ” DRF view ํ•จ์ˆ˜๊ฐ€ ์‘๋‹ตํ•ด์•ผ ํ•˜๋Š” HTTP ๋ฉ”์„œ๋“œ ๋ชฉ๋ก์„ ๋ฐ›์Œ
โœ” ๊ธฐ๋ณธ์ ์œผ๋กœ GET ๋ฉ”์„œ๋“œ๋งŒ ํ—ˆ์šฉ๋˜๋ฉฐ ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ ์š”์ฒญ์— ๋Œ€ํ•ด์„œ๋Š” 405 Method Not Allowed๋กœ ์‘๋‹ต


GET - Detail

  1. ArticleSerializer ์ •์˜
    image
  2. url ๋ฐ view ํ•จ์ˆ˜ ์ •์˜
    image
    image
  3. ์‘๋‹ต ํ™•์ธ
    image

POST

โœ” ์š”์ฒญ์— ๋Œ€ํ•œ ๋ฐ์ดํ„ฐ ์ƒ์„ฑ์ด ์„ฑ๊ณตํ–ˆ์„ ๋•Œ๋Š” 201 Created ์ƒํƒœ ์ฝ”๋“œ๋ฅผ, ์‹คํŒจ ํ–ˆ์„ ๊ฒฝ์šฐ์—๋Š” 400 Bad request๋ฅผ ์‘๋‹ต

  1. view ํ•จ์ˆ˜ ์ž‘์„ฑ
    image
    โœ” method ๊ธฐ์ค€์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ƒˆ๋กœ์šด viewํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ ๋ฐ‘์— ์ถ”๊ฐ€ํ•ด์ค€๋‹ค.
  2. ์‘๋‹ต ํ™•์ธ
    image
  3. raise_exception=True
    image
    โœ” raise_exception=True๋ฅผ ์„ค์ •ํ•ด์ฃผ๋ฉด ์ž๋™์œผ๋กœ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ผ HTTP400์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

DELETE

  1. viewํ•จ์ˆ˜ ์ž‘์„ฑ
    image
    โœ” ๋ฐ์ดํ„ฐ ์‚ญ์ œ์— ์„ฑ๊ณตํ–ˆ์„ ๊ฒฝ์šฐ 204 No Content ๋ฐ˜ํ™˜
  2. ์‘๋‹ต ํ™•์ธ
    image

PUT

  1. viewํ•จ์ˆ˜ ์ž‘์„ฑ
    image
  2. ์‘๋‹ต ํ™•์ธ
    image

'โญ Personal_Study > Django' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

DynamicFieldsModelSerializer  (0) 2022.11.06
Django REST framework - N:1 Relation  (1) 2022.10.27
Django: Response JSON  (0) 2022.10.25
(M:N) User- User Relationship  (0) 2022.10.18
(M:N) Article - User Relationship  (0) 2022.10.17

๋Œ“๊ธ€