๐Ÿฆ Python Online Store ๋งŒ๋“ค๊ธฐ 19ํŽธ - ์ƒํ’ˆ ๊ตฌ๋งค๊ฒฐ๊ณผ ์กฐํšŒ

yohan-record[web]ยท2022๋…„ 8์›” 11์ผ
0

python onlinestore ๊ฐœ๋ฐœ์ผ์ง€

๋ชฉ๋ก ๋ณด๊ธฐ
19/25
post-thumbnail

๐ŸŽˆ Front End Developer ์˜ Back End ๋„์ „๊ธฐ ! ๐ŸŽˆ

์ด ๊ธ€์€ PROJECT LION : ํ˜ธ์ฝ”์น˜ ๊ฐ•์‚ฌ๋‹˜์˜ ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉฐ ์ฐธ๊ณ ํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

์ž‘์—… ์ค‘, ๊ฐœ๋ฐœ๊ณผ์ • ์ •๋ฆฌ ๋ฐ issue๊ฐ€ ๋˜์—ˆ๋˜ ๋ถ€๋ถ„๋“ค์„ ๊ณต์œ  ๋ฐ ๊ธฐ๋กํ•˜๊ณ ์ž ์ž‘์„ฑํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

1. ๊ตฌ๋งค๊ฒฐ๊ณผ ์กฐํšŒ

โœ ์‚ฌ์šฉ์ž๊ฐ€ ๊ตฌ๋งค๋ฅผ ์™„๋ฃŒํ•˜์˜€๋‹ค๋ฉด, ๊ตฌ๋งค๋ฅผ ์™„๋ฃŒํ•œ ์ƒํ’ˆ์˜ ๋ชฉ๋ก ๋ฐ ์ƒ์„ธํŽ˜์ด์ง€๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค.

์šฐ์„ , ์ฃผ๋ฌธ์™„๋ฃŒ ์ƒํ’ˆ์˜ ๋ชฉ๋ก๋ถ€ํ„ฐ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๊ตฌ์„ฑํ•ด ๋ณด๊ฒ ๋‹ค.

  1. ์ฃผ๋ฌธ์™„๋ฃŒ controller ์ƒ์„ฑ

๐Ÿ“ blueprint ์ƒ์„ฑ = order ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง„ blueprint controller ์ƒ์„ฑ


๐Ÿ“ controllers > order.py ์ƒ์„ฑ
= blueprint order ์ถ”๊ฐ€ ๋ฐ order ์‚ฌ์šฉ


๐Ÿ“ app.py > order blueprint ๋“ฑ๋ก
= order import ๋ฐ prefix๋Š” order๋Š” ์ด์šฉ


  1. ๊ตฌ๋งค ์™„๋ฃŒํ•œ ์ƒํ’ˆ ๋ชฉ๋ก API ์ƒ์„ฑ(controllers > order.py)
    = ๊ตฌ๋งค์™„๋ฃŒ๋œ ๋ฆฌ์ŠคํŠธ์ด๋ฏ€๋กœ ๋‹น์—ฐํžˆ ๋กœ๊ทธ์ธ ๋œ ์ƒํƒœ์—์„œ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ check_login์„ ์‚ฌ์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธ ์œ ๋ฌด ์ฒดํฌ๋ฅผ ๋จผ์ € ์ง„ํ–‰ํ•œ๋‹ค.

๊ทธ ํ›„, ์ฃผ๋ฌธ๋ชฉ๋ก์„ ๊ฐ€์ ธ์™€์•ผ ํ•˜๋Š”๋ฐ, find ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ ธ์˜ค๋„๋ก ํ•˜๊ฒ ๋‹ค


  1. find ํ•จ์ˆ˜ ์ƒ์„ฑ(models > order.py)
    = db์˜ orders์— ์žˆ๋Š” ๋ชจ๋“  document๋ฅผ ๊ฐ€์ ธ์™€์„œ orders ๋ณ€์ˆ˜์— ์ €์žฅ์‹œ์ผœ์ฃผ๊ณ  orders๋ฅผ return ์‹œ์ผœ์ค€๋‹ค.

  1. orders ์‚ฌ์šฉ
    = import ๋ฐ models > order.py์—์„œ return ๋ฐ›์•„์˜จ orders ์‚ฌ์šฉํ•œ๋‹ค.
    ์ด ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  html์—์„œ ๋ณด์—ฌ์ฃผ์–ด์•ผ ํ•œ๋‹ค.(orders.html ์ƒ์„ฑ ๋ฐ orders ์ •๋ณด html file์— ๋˜์ ธ์คŒ)

  1. orders.html file ์ƒ์„ฑ(๊ตฌ๋งคํ•œ ์ฃผ๋ฌธ ๋ชฉ๋ก)

    = ์—ฌ๊ธฐ์„œ ์œ ์˜ํ•  ๋ถ€๋ถ„์€ render_template ์ƒ์„ฑ ํ›„ product๊ฐ€ ์•„๋‹Œ orders๋ฅผ ๋„˜๊ฒจ์ฃผ์—ˆ๊ธฐ ๋•Œ๋ฌธ์—,
    {% for order in orders %} = ๋„˜๊ฒจ์ค€ orders ๊ฐ’์„ order๋กœ ๋ฐ›์•„์„œ order์˜ product๋ฅผ ํƒ€๊ณ  ํ•ด๋‹น ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.

    order > product > ___

= ์ฃผ๋ฌธ๋ชฉ๋ก ํŽ˜์ด์ง€ ๊ฒฐ๊ณผํ™”๋ฉด


์šฐ์„  ์ฃผ๋ฌธํ•œ ์ƒํ’ˆ์˜ ๋ชฉ๋ก ํŽ˜์ด์ง€๋Š” ๋์ด๋‚ฌ๋‹ค.
๋‹ค์Œ์œผ๋กœ๋Š” ์ฃผ๋ฌธํ•œ ์ƒํ’ˆ์˜ ์ƒ์„ธํŽ˜์ด์ง€๋ฅผ ํ™•์ธํ•ด๋ณด๊ฒ ๋‹ค.

  1. ์ƒ์„ธ ํŽ˜์ด์ง€ API ์ƒ์„ฑ
    = ์ฃผ๋ฌธ ๋ชฉ๋ก๊ณผ ์œ ์‚ฌํ•˜๋‚˜, ์ƒํ’ˆ ์ƒ์„ธ ํŽ˜์ด์ง€๋Š” ์–ด๋–ค order์ธ์ง€๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ order_id ๊ณ ์œ ๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.

์ƒ์„ธํŽ˜์ด์ง€๋„ ๋™์ผํ•˜๊ฒŒ ๋กœ๊ทธ์ธ์ด ํ•„์š”ํ•˜์—ฌ check_login์œผ๋กœ ์ฒดํฌํ–ˆ์œผ๋ฉฐ, order_id ํ•˜๋‚˜๋งŒ ์ฐพ์œผ๋ฉด ๋˜๋ฏ€๋กœ, find_one์œผ๋กœ order_id๋ฅผ ์ฃผ์†Œ๊ฐ’์—์„œ ๋ฐ›์•„์„œ ๋„˜๊ฒจ์ค„ ๊ฒƒ์ด๋‹ค.


  1. ๋„˜๊ธด order_id๋ฅผ find_one์œผ๋กœ ์ฐพ๊ธฐ(models > order.py)
    = ๋„˜์–ด์˜จ order_id ๊ฐ’์„ _id ์ฃผ์†Œ๋กœ(db์•ˆ์˜ _id๋ฅผ ์ฐพ๋Š”๊ฒƒ) document๋ฅผ ์ฐพ๋Š”๋‹ค.
    ๊ทธ ํ›„ order๋ฅผ return ์‹œํ‚จ๋‹ค.

๐Ÿ”– ObjectId๋ฅผ ๋ฐ›์•„์˜จ ์ด์œ ๋Š” db์•ˆ์˜ id๊ฐ’์ด ObjectID๊ฐ’์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ์–ด ๋งž์ถฐ์ฃผ์—ˆ๋‹ค.


  1. order.html file ์ƒ์„ฑ(์ฃผ๋ฌธ์™„๋ฃŒ ์ƒ์„ธ ํŽ˜์ด์ง€)
    = ์œ ์˜ํ•  ์ ์€ ์ฃผ๋ฌธ๋ชฉ๋ก๊ณผ ๋™์ผํ•˜๊ฒŒ order์˜ product ์•ˆ์— ๊ฐ€์ ธ์˜ฌ data๋“ค์ด ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค.

  1. ์ฃผ๋ฌธ๋ชฉ๋ก ํŽ˜์ด์ง€์—์„œ ์ƒ์„ธํŽ˜์ด์ง€ ์ด๋™ ๋งํฌ
    = orders์˜ order_id ๊ณ ์œ ๊ฐ’์œผ๋กœ ๋˜์ ธ์ค€๋‹ค(์ด๋™) -> order controllers ์•ˆ์˜ ์ƒ์„ธ ํŽ˜์ด์ง€๋กœ ์ด๋™๋˜๋Š” ๋ถ€๋ถ„์ด ์ž‘๋™๋œ๋‹ค.

  1. ๋ฐฐ์†ก์ง€ / ์ฃผ๋ฌธ์ž์ •๋ณด ์ถ”๊ฐ€
    = order ์•ˆ์˜ ๊ฐ์ž ํ•ด๋‹น๋˜๋Š” data๊ฐ’์„ ๊ฐ€์ ธ์˜จ๋‹ค.

์ด๋ ‡๊ฒŒ ์ฃผ๋ฌธ์™„๋ฃŒ๋œ ๋ชฉ๋ก ๋ฐ ์ƒ์„ธํŽ˜์ด์ง€๋ฅผ ๊ตฌํ˜„ํ•ด ๋ณด์•˜๋‹ค.
์ง์ ‘ ์‚ฌ์šฉ์ž ๋ฐ ์ƒํ’ˆ์˜ data๋ฅผ ๋„˜๊ธฐ๊ณ , ๊ทธ ๋„˜๊ฒจ์ง„ ๊ฐ’์„ ๋ฐ›์•„์„œ db์—์„œ ํ™•์ธ ํ›„ ์ง์ ‘ ๋ฟŒ๋ ค์ง€๋Š” ๊ณผ์ •๊นŒ์ง€ ๊ตฌํ˜„ํ•ด ๋ณด๋‹ˆ front์™€๋Š” ๋˜ ๋‹ค๋ฅธ ์žฌ๋ฏธ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๐Ÿ˜Ž

๋‹ค์Œ ์‹œ๊ฐ„์—๋Š” ๋“œ๋””์–ด ๊ฒฐ์ œ ๋ชจ๋“ˆ์„ ์—ฐ๋™์‹œ์ผœ ๋ณด๊ฒ ๋‹ค!!!!๐ŸŽ‰

profile
๐Ÿฑโ€๐Ÿ Front End Developer

0๊ฐœ์˜ ๋Œ“๊ธ€