Giter Club home page Giter Club logo

drf-homework's Introduction

๐Ÿ˜„DRFhomework

python django

๐Ÿ“œ1์ผ์ฐจ ๊ณผ์ œ

๊ณผ์ œ

  1. args, kwargs๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์˜ˆ์ œ ์ฝ”๋“œ ์งœ๋ณด๊ธฐ
  2. mutable๊ณผ immutable์€ ์–ด๋–ค ํŠน์„ฑ์ด ์žˆ๊ณ , ์–ด๋–ค ์ž๋ฃŒํ˜•์ด ์–ด๋””์— ํ•ด๋‹นํ•˜๋Š”์ง€ ์„œ์ˆ ํ•˜๊ธฐ
  3. DB Field์—์„œ ์‚ฌ์šฉ๋˜๋Š” Key ์ข…๋ฅ˜์™€ ํŠน์ง• ์„œ์ˆ ํ•˜๊ธฐ
  4. django์—์„œ queryset๊ณผ object๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ์ง€ ์„œ์ˆ ํ•˜๊ธฐ

์ œ์ถœ ํŒŒ์ผ
drf1.py

๐Ÿ“’2์ผ์ฐจ ๊ณผ์ œ

๊ณผ์ œ

  1. Django ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , user ๋ผ๋Š” ์•ฑ์„ ๋งŒ๋“ค์–ด์„œ settings.py ์— ๋“ฑ๋กํ•ด๋ณด์„ธ์š”.
  2. user/models.py์— Custom user model์„ ์ƒ์„ฑํ•œ ํ›„ django์—์„œ user table์„ ์ƒ์„ฑ ํ•œ ๋ชจ๋ธ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ด์ฃผ์„ธ์š”
  3. user/models.py์— ์‚ฌ์šฉ์ž์˜ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” UserProfile ์ด๋ผ๋Š” ๋ชจ๋ธ์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”
  4. blog๋ผ๋Š” ์•ฑ์„ ๋งŒ๋“  ํ›„ settings.py์— ๋“ฑ๋กํ•ด์ฃผ์„ธ์š”
  5. blog/models.py์— <์นดํ…Œ๊ณ ๋ฆฌ ์ด๋ฆ„, ์„ค๋ช…>์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” Category๋ผ๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.
  6. blog/models.py์— <๊ธ€ ์ž‘์„ฑ์ž, ๊ธ€ ์ œ๋ชฉ, ์นดํ…Œ๊ณ ๋ฆฌ, ๊ธ€ ๋‚ด์šฉ>์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” Article ์ด๋ผ๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.(์นดํ…Œ๊ณ ๋ฆฌ๋Š” 2๊ฐœ ์ด์ƒ ์„ ํƒํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ด์š”)
  7. Article ๋ชจ๋ธ์—์„œ ์™ธ๋ž˜ ํ‚ค๋ฅผ ํ™œ์šฉํ•ด์„œ ์ž‘์„ฑ์ž์™€ ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด์ฃผ์„ธ์š”
  8. admin.py์— ๋งŒ๋“ค์—ˆ๋˜ ๋ชจ๋ธ๋“ค์„ ์ถ”๊ฐ€ํ•ด ์‚ฌ์šฉ์ž์™€ ๊ฒŒ์‹œ๊ธ€์„ ์ž์œ ๋กญ๊ฒŒ ์ƒ์„ฑ, ์ˆ˜์ • ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ด์ฃผ์„ธ์š”
  9. CBV ๊ธฐ๋ฐ˜์œผ๋กœ ๋กœ๊ทธ์ธ / ๋กœ๊ทธ์•„์›ƒ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”
  10. CBV ๊ธฐ๋ฐ˜์œผ๋กœ ๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž์˜ ๊ฒŒ์‹œ๊ธ€์˜ ์ œ๋ชฉ์„ ๋ฆฌํ„ดํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”

๐Ÿ”–3์ผ์ฐจ ๊ณผ์ œ

๊ณผ์ œ

  1. blog ์•ฑ์— <๊ฒŒ์‹œ๊ธ€, ์‚ฌ์šฉ์ž, ๋‚ด์šฉ>์ด ํฌํ•จ๋œ comment ํ…Œ์ด๋ธ”์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”
  2. ์™ธ๋ž˜ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์„œ Article, User ํ…Œ์ด๋ธ”๊ณผ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด์ฃผ์„ธ์š”
  3. admin.py์— comment๋ฅผ ์ถ”๊ฐ€ํ•ด ์ž์œ ๋กญ๊ฒŒ ์ƒ์„ฑ, ์ˆ˜์ • ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์„ธ์š”
  4. serializer๋ฅผ ํ™œ์šฉํ•ด ๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ณธ ์ •๋ณด์™€ ์ƒ์„ธ ์ •๋ณด๋ฅผ ๋ฆฌํ„ดํ•ด ์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”
  5. 4๋ฒˆ์˜ serializer์— ์ถ”๊ฐ€๋กœ ๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž์˜ ๊ฒŒ์‹œ๊ธ€, ๋Œ“๊ธ€์„ ๋ฆฌํ„ดํ•ด์ฃผ๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”
  6. blog ์•ฑ์— title / category / contents๋ฅผ ์ž…๋ ฅ๋ฐ›์•„์„œ ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”
  • ๋งŒ์•ฝ title์ด 5์ž ์ดํ•˜๋ผ๋ฉด ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”
  • ๋งŒ์•ฝ contents๊ฐ€ 20์ž ์ดํ•˜๋ผ๋ฉด ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•  ์ˆ˜ ์—†๋‹ค๊ณ  ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”
  • ๋งŒ์•ฝ ์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์•˜๋‹ค๋ฉด ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”
  1. custom permission class๋ฅผ ํ™œ์šฉํ•ด ๊ฐ€์ž… ํ›„ 3์ผ ์ด์ƒ ์ง€๋‚œ ์‚ฌ์šฉ์ž๋งŒ ๊ฒŒ์‹œ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์„ธ์š”
  • ํ…Œ์ŠคํŠธ ํ•  ๋•Œ์—๋Š” ๊ฐ€์ž… ํ›„ 3๋ถ„ ์ด์ƒ ์ง€๋‚œ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฒŒ์‹œ๊ธ€์„ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์„ธ์š”
  • join_date๋Š” datetime field๋กœ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”

๐Ÿ“•4์ผ์ฐจ ๊ณผ์ œ

๊ณผ์ œ

  1. admin ํŽ˜์ด์ง€์— user admin์„ ๋“ฑ๋กํ•˜๊ณ , userprofile ํ…Œ์ด๋ธ”์„ user admin ํŽ˜์ด์ง€์—์„œ ๊ฐ™์ด ๋ณด๊ณ  ์„ค์ • ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์ฃผ์„ธ์š”
  2. article ํ…Œ์ด๋ธ”์— <๋…ธ์ถœ ์‹œ์ž‘ ์ผ์ž, ๋…ธ์ถœ ์ข…๋ฃŒ ์ผ์ž>๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”
  3. article view์— ๊ฒŒ์‹œ๊ธ€ ์กฐํšŒ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค๋˜, ํ˜„์žฌ ์ผ์ž๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋…ธ์ถœ ์‹œ์ž‘ ์ผ์ž์™€ ๋…ธ์ถœ ์ข…๋ฃŒ ์ผ์ž ์‚ฌ์ด์— ์žˆ๋Š” ํ•ญ๋ชฉ๋“ค๋งŒ ๋ฆฌํ„ดํ•ด์ฃผ๋„๋ก ํ•„ํ„ฐ๋ฅผ ์„ค์ •ํ•ด์ฃผ์„ธ์š”
  • ๋ฆฌํ„ด ๋ฐ์ดํ„ฐ๋Š” ๊ฒŒ์‹œ๊ธ€ ์ž‘์„ฑ์ผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ตœ๊ทผ ์“ด ๊ธ€์ด ๊ฐ€์žฅ ๋จผ์ € ์˜ฌ๋ผ์˜ค๋„๋ก ํ•ด์ฃผ์„ธ์š”
  1. ๊ธฐ์กด article ์ƒ์„ฑ ๊ธฐ๋Šฅ์„ ์œ ์ง€ํ•˜๋˜, article์€ admin user ํ˜น์€ ๊ฐ€์ž… ํ›„ 7์ผ์ด ์ง€๋‚œ ์‚ฌ์šฉ์ž๋งŒ ์ƒ์„ฑ ๊ฐ€๋Šฅํ•˜๋„๋ก ํ•ด์ฃผ์„ธ์š”
  • ์กฐํšŒ๋Š” ๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•ด์„œ๋งŒ ๊ฐ€๋Šฅํ•˜๋„๋ก ์„ค์ •ํ•ด์ฃผ์„ธ์š”

๐Ÿงพ5์ผ์ฐจ ๊ณผ์ œ

๊ณผ์ œ

  1. product๋ผ๋Š” ์•ฑ์„ ์ƒˆ๋กœ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”

  2. product ์•ฑ์—์„œ <์ž‘์„ฑ์ž, ์ œ๋ชฉ, ์ธ๋„ค์ผ, ์„ค๋ช…, ๋“ฑ๋ก์ผ์ž, ๋…ธ์ถœ ์‹œ์ž‘ ์ผ, ๋…ธ์ถœ ์ข…๋ฃŒ์ผ>๊ฐ€ ํฌํ•จ๋œ product ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ด์ฃผ์„ธ์š”

  3. django serializer์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” validate / create / update ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด event ํ…Œ์ด๋ธ”์˜ ์ƒ์„ฑ/์ˆ˜์ • ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”

    • postman์œผ๋กœ ํŒŒ์ผ์„ ์—…๋กœ๋“œ ํ•  ๋•Œ๋Š” raw ๋Œ€์‹  form-data๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , Key type์„ File๋กœ ์„ค์ •ํ•ด์ฃผ์„ธ์š”
  4. ๋“ฑ๋ก๋œ ์ด๋ฒคํŠธ ์ค‘ ํ˜„์žฌ ์‹œ๊ฐ„์ด ๋…ธ์ถœ ์‹œ์ž‘ ์ผ๊ณผ ๋…ธ์ถœ ์ข…๋ฃŒ ์ผ์˜ ์‚ฌ์ด์— ์žˆ๊ฑฐ๋‚˜, ๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์„ฑํ•œ product ์ฟผ๋ฆฌ์…‹์„ ์ง๋ ฌํ™” ํ•ด์„œ ๋ฆฌํ„ดํ•ด์ฃผ๋Š” serializer๋ฅผ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”

  5. product field๋ฅผ admin์—์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋“ฑ๋กํ•ด์ฃผ์„ธ์š”


๐Ÿ“ข6์ผ์ฐจ ๊ณผ์ œ

๊ณผ์ œ

  1. product ์•ฑ์˜ product ํ…Œ์ด๋ธ” ๊ตฌ์„ฑ์„ <์ž‘์„ฑ์ž, ์ธ๋„ค์ผ, ์ƒํ’ˆ ์„ค๋ช…, ๋“ฑ๋ก์ผ์ž, ๋…ธ์ถœ ์ข…๋ฃŒ ์ผ์ž, ๊ฐ€๊ฒฉ, ์ˆ˜์ • ์ผ์ž, ํ™œ์„ฑํ™” ์—ฌ๋ถ€>๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์„ธ์š”
  2. django serializer๋ฅผ ์‚ฌ์šฉํ•ด validate / create / update ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•ด์ฃผ์„ธ์š”
    1. custom validation ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด ๋…ธ์ถœ ์ข…๋ฃŒ ์ผ์ž๊ฐ€ ํ˜„์žฌ๋ณด๋‹ค ๋” ์ด์ „ ์‹œ์ ์ด๋ผ๋ฉด ์ƒํ’ˆ์„ ๋“ฑ๋กํ•  ์ˆ˜ ์—†๋„๋ก ํ•ด์ฃผ์„ธ์š”
    2. custom creator ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด ์ƒํ’ˆ ์„ค๋ช…์˜ ๋งˆ์ง€๋ง‰์— "<๋“ฑ๋ก ์ผ์ž>์— ๋“ฑ๋ก๋œ ์ƒํ’ˆ์ž…๋‹ˆ๋‹ค." ๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”
    3. custom update ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด ์ƒํ’ˆ์ด update ๋์„ ๋•Œ ์ƒํ’ˆ ์„ค๋ช…์˜ ๊ฐ€์žฅ ์ฒซ์ค„์— "<์ˆ˜์ • ์ผ์ž>์— ์ˆ˜์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค." ๋ผ๋Š” ๋ฌธ๊ตฌ๋ฅผ ์ถ”๊ฐ€ํ•ด์ฃผ์„ธ์š”
  3. product ์•ฑ์—์„œ <์ž‘์„ฑ์ž, ์ƒํ’ˆ, ๋‚ด์šฉ, ํ‰์ , ์ž‘์„ฑ์ผ>์„ ๋‹ด๊ณ  ์žˆ๋Š” review ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด์ฃผ์„ธ์š”
  4. review ํ…Œ์ด๋ธ”์„ ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€์—์„œ ์ž์œ ๋กญ๊ฒŒ ์ถ”๊ฐ€/์ˆ˜์ • ํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ด์ฃผ์„ธ์š”
  5. ํ˜„์žฌ ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ, ๋…ธ์ถœ ์ข…๋ฃŒ ๋‚ ์งœ๊ฐ€ ์ง€๋‚˜์ง€ ์•Š์•˜๊ณ  ํ™œ์„ฑํ™” ์—ฌ๋ถ€๊ฐ€ True์ด๊ฑฐ๋‚˜ ๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋ก ํ•œ ์ƒํ’ˆ๋“ค์˜ ์ •๋ณด๋ฅผ serializer๋ฅผ ์‚ฌ์šฉํ•ด ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”
  6. 5๋ฒˆ ์ƒํ’ˆ ์ •๋ณด๋ฅผ ๋ฆฌํ„ด ํ•  ๋•Œ ์ƒํ’ˆ์— ๋‹ฌ๋ฆฐ review์™€ ํ‰๊ท  ์ ์ˆ˜๋ฅผ ํ•จ๊ป˜ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”
    1. ํ‰๊ท  ์ ์ˆ˜๋Š” (๋ฆฌ๋ทฐ ํ‰์ ์˜ ํ•ฉ/๋ฆฌ๋ทฐ ๊ฐฏ์ˆ˜)๋กœ ๊ตฌํ•ด์ฃผ์„ธ์š”
    2. ์ž‘์„ฑ ๋œ ๋ฆฌ๋ทฐ๋Š” ๋ชจ๋‘ returnํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ๊ฐ€์žฅ ์ตœ๊ทผ ๋ฆฌ๋ทฐ 1๊ฐœ๋งŒ ๋ฆฌํ„ดํ•ด์ฃผ์„ธ์š”
  7. ๋กœ๊ทธ์ธ ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋Š” ์ƒํ’ˆ ์กฐํšŒ๋งŒ ๊ฐ€๋Šฅํ•˜๊ณ , ํšŒ์›๊ฐ€์ž… ์ดํ›„ 3์ผ ์ด์ƒ ์ง€๋‚œ ์‚ฌ์šฉ์ž๋งŒ ์ƒํ’ˆ์„ ๋“ฑ๋ก ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ถŒํ•œ์„ ์„ค์ •ํ•ด์ฃผ์„ธ์š”

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.