STUDY/Python

โฑ Django ํƒ€์ž„์–ดํƒ | 6์›” 10์ผ | ๋‚ด๊ฐ€ ๋“ฑ๋กํ•œ ์ƒํ’ˆ์„ ์กฐํšŒํ•˜๊ณ  ์ฃผ๋ฌธํ•˜๋Š” API ๊ตฌํ˜„

nicesugi 2022. 6. 10. 18:51

๐Ÿ›’ Git hub  

https://github.com/nicesugi/shop.git

 

10๋ฒˆ๊นŒ์ง€ ํ–ˆ๋Š”๋ฐ.. ํ”„๋กœ์ ํŠธ ๋๋‚˜์ž๋งˆ์ž ๋‹ค์‹œ ํ’€์–ด์•ผ๊ฒ ๋‹ค.


์™„์„ฑ ์˜ˆ์‹œ
  1. Django ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ , user, product ๋ผ๋Š” ์•ฑ์„ ๋งŒ๋“ค์–ด์„œ settings.py์— ๋“ฑ๋ก
  2. user/models.py : <email, password>๋ฅผ ๋ฐ›์„์ˆ˜ ์žˆ๋Š” User ์ด๋ผ๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.
  3. product/models.py : <์ƒํ’ˆ ์ด๋ฆ„, ์ƒํ’ˆ ์นดํ…Œ๊ณ ๋ฆฌ, ์ด๋ฏธ์ง€, ์„ค๋ช…, ๊ฐ€๊ฒฉ, ์žฌ๊ณ ๋Ÿ‰>์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” Product ์ด๋ผ๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.
  4. product/models.py :<์ƒํ’ˆ์˜ ์นดํ…Œ๊ณ ๋ฆฌ ์ด๋ฆ„>์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋Š” Category ๋ผ๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.
  5. product/models.py : ์ฃผ๋ฌธํ•œ ์ƒํƒœ(์ฃผ๋ฌธ ์™„๋ฃŒ, ๊ฒฐ์ œ ์™„๋ฃŒ, ์ทจ์†Œ, ๋ฐฐ์†ก์ถœ๋ฐœ, ๋ฐฐ์†ก์™„๋ฃŒ) ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” OrderStatus๋ผ๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.
  6. ์นดํ…Œ๊ณ ๋ฆฌ์— ๋”ฐ๋ฅธ ์ƒํ’ˆ๋งŒ ๋‚˜ํƒ€๋‚˜๋„๋ก Category์™€ Product๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•ด๋ณด์„ธ์š”. (ํžŒํŠธ: one-to-many ๋˜๋Š” many-to-many ๊ด€๊ณ„ ์ด์šฉ)
  7. ์œ ์ €๊ฐ€ ์ฃผ๋ฌธํ•œ ์ƒํ’ˆ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ProductOrder ํ•˜๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด ๋ณด์„ธ์š”.
  8. product/models.py : ์œ ์ €์˜ ์ฃผ๋ฌธ(๋ฐฐ์†ก์ฃผ์†Œ, ์ฃผ๋ฌธ์‹œ๊ฐ„, ์ „์ฒด ์ƒํ’ˆ ๊ฐ€๊ฒฉ, ํ• ์ธ์œจ, ์ตœ์ข…๊ฐ€๊ฒฉ, ์œ ํšจ์—ฌ๋ถ€(boolean) )์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” UserOrder๋ผ๋Š” ๋ชจ๋ธ์„ ๋งŒ๋“ค์–ด๋ณด์„ธ์š”.
  9. ์œ ์ €๊ฐ€ ์ƒํ’ˆ์„ ์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ๊ณ  ์ฃผ๋ฌธ ์ƒํƒœ๋ฅผ ๊ด€๋ฆฌํ•˜๋„๋ก ์œ„์—์„œ ๋งŒ๋“  User, Category, Product, OrderStatus, UserOrder, ProductOrder ํ…Œ์ด๋ธ”๋“ค์˜ ๊ด€๊ณ„๋ฅผ ๋งบ์–ด๋ณด์„ธ์š”.
  10. (๋ชจ๋ธ๋ง์€ ์š”๊ตฌ์‚ฌํ•ญ์— ๋”ฐ๋ผ ํšจ์œจ์ ์ธ ๋ฐฉ์‹์ด ๋‹ค๋ฅด๋ฏ€๋กœ ์š”๊ตฌ์‚ฌํ•ญ๋งŒ ์ถฉ์กฑํ•˜๋„๋ก ๊ด€๊ณ„ ์„ค์ •ํ•˜๊ฑฐ๋‚˜ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด๋„๋จ)
  11. ๋ชจ๋ธ์„ ์ž‘์„ฑํ•˜๊ณ  migrations/migrate ์ดํ›„ Admin ํŽ˜์ด์ง€๋ฅผ ํ†ตํ•ด์„œ, Category ๋ชจ๋ธ์— laptop, mobile๋ผ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๊ฐ๊ฐ ์ƒ์„ฑํ•ด๋ณด์„ธ์š”.
  12. Admin ํŽ˜์ด์ง€ ๋˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด์„œ ๊ฐ Category์— ํ•ด๋‹นํ•˜๋Š” ์ƒํ’ˆ์„ ๋‘๊ฐœ์”ฉ ๋„ฃ์–ด๋ณด์„ธ์š”.
  13. Admin ํŽ˜์ด์ง€ ๋˜๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์„ ํ†ตํ•ด์„œ ๊ฐ OrderStatus์— ์ฃผ๋ฌธ ์™„๋ฃŒ(order placed), ๊ฒฐ์ œ์™„๋ฃŒ(paid), ๋ฐฐ์†ก์™„๋ฃŒ(completed), ๋ฐœ์†ก์™„๋ฃŒ(sent), canceled ์ƒํƒœ๋ฅผ ๋„ฃ์–ด๋ณด์„ธ์š”
  14. ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•ด์„œ python manange.py shell ์„ ์ด์šฉํ•˜์—ฌ User ๋ชจ๋ธ์„ 2๊ฐœ์ •๋„ ์ƒ์„ฑํ•ด์„œ ํ…Œ์ŠคํŠธ
  15. product/views.py : get ๋ฉ”์†Œ๋“œ์—์„œ ์„ ํƒํ•˜๋Š” ์นดํ…Œ๊ณ ๋ฆฌ์— ๋”ฐ๋ผ ์ƒํ’ˆ๋ฆฌ์ŠคํŠธ ๋ณด์—ฌ์ฃผ๋Š” view์™€ ํ…œํ”Œ๋ฆฟ์„ ๊ตฌํ˜„ํ•ด๋ณด์„ธ์š”.
  16. product/views.py : ์ฃผ๋ฌธ ํ•˜๊ธฐ ๋ฒ„ํŠผ์„ ์„ ํƒํ–ˆ์„ ๋•Œ ์ฃผ๋ฌธํŽ˜์ด์ง€๋กœ ์ด๋™ํ• ์ˆ˜ ์žˆ๋„๋ก view์™€ ํ…œํ”Œ๋ฆฟ์„ ๊ตฌํ˜„ํ•ด๋ณด์„ธ์š”.
  17. poduct/views.py : post ๋ฉ”์†Œ๋“œ์—์„œ ์ƒํ’ˆ๋ช…, ๊ฐœ์ˆ˜, ์ฃผ์†Œ๋ฅผ ๋ฐ›์•„์„œ ์œ„์—์„œ ์ž‘์„ฑํ•œ ProductOrder, UserOrder์„ create ํ•˜๋Š” ์ฃผ๋ฌธ ๋ฉ”์†Œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด์„ธ์š”. ( OrderStatus ์ฃผ๋ฌธํ•œ ์ƒํƒœ์ด๋ฏ€๋กœ order placed ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๋งŒ๋“ค๊ฒƒ!)
๋ฐ˜์‘ํ˜•