[django] 1st project review(views/urls)

EMMAยท2022๋…„ 4์›” 3์ผ
0

๐Ÿ–ฅ 1์ฐจ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ฐ›์€ ํ”ผ๋“œ๋ฐฑ ์ •๋ฆฌ

  • 1์ฐจ ํ”„๋กœ์ ํŠธ: fruitz_company
  • scope: ์นดํ…Œ๊ณ ๋ฆฌ/์ œํ’ˆ views/urls

.gitignore
: ์˜ˆ๋ฅผ ๋“ค์–ด my_settings.py ๋‚˜ data.py ๋“ฑ์„ .gitignore์— ๋„ฃ๊ณ  PR ์˜ฌ๋ฆฐ ๋‹ค์Œ, pull์„ ๋‹ค์‹œ ๋ฐ›์œผ๋ฉด ํ•ด๋‹น ํŒŒ์ผ๋“ค์„ ๋ณด์—ฌ์ง€์ง€ ์•Š๋Š”๋‹ค.
: ๊ทธ๋ž˜์„œ ํ•ด๋‹น ํŒŒ์ผ ๋‚ด์šฉ์€ ๋”ฐ๋กœ ๋นผ๋’€๋‹ค๊ฐ€, pull ๋ฐ›์€ ํ›„์— ๋‹ค์‹œ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. (secret_key๋Š” ๋žœ๋ค์œผ๋กœ ์‚ฌ์ดํŠธ์—์„œ get)


migrate
: migrateํŒŒ์ผ์€ ์„œ๋กœ dependency ํŠน์„ฑ์ด ์žˆ์–ด ์‚ญ์ œํ•˜๋ฉด ์•ˆ๋œ๋‹ค
: ๊ทธ๋ž˜์„œ ๋ณดํ†ต migrate ํŒŒ์ผ๋งŒ ๊ด€๋ฆฌํ•˜๋Š” ๋ณ„๋„์˜ branch๋ฅผ ๋งŒ๋“ค์–ด๋†“๋Š”๋‹ค๊ณ  ํ•œ๋‹ค
: column์ด ์ถ”๊ฐ€๋˜์–ด(๋ชจ๋ธ๋ง์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์ƒ๊ฒจ์„œ) migrate ์•ˆ๋  ๊ฒฝ์šฐ, ์ผ๋‹จ default=0 ๋“ฑ์„ ๋„ฃ์–ด์„œ ์ถ”๊ฐ€ํ•œ ํ›„ migrate ํ•˜๊ณ  > ๋‹ค์‹œ default = 0 ์‚ญ์ œ > ๋‹ค์‹œ migrate ํ•˜๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ด๋‹ค

request.GET.get
:request.GET์€ django์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ฉ”์†Œ๋“œ
:python์—์„œ ์ œ๊ณตํ•˜๋Š” get()์€ ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ์ผ ๋•Œ๋งŒ ์‚ฌ์šฉํ•˜์ง€๋งŒ, request.GET์€ ๋”•์…”๋„ˆ๋ฆฌ๊ฐ€ ์•„๋‹ˆ์–ด๋„ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค. (์‚ฌ์ „ํ˜•์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ ๋•Œ๋ฌธ. request๋Š” ๋”•์…”๋„ˆ๋ฆฌ ํ˜•ํƒœ๊ฐ€ ์•„๋‹ˆ๋‹ค)

# http://localhost:8000/fbv/?q=100
def fbv(request):
	print(request.GET['q'])
    return HttpResponse('')
#๋ฐ˜ํ™˜๊ฐ’: 100

:get()์„ ๋ถ™์—ฌ์„œ request.GET.get()์„ ์‚ฌ์šฉํ•˜๋ฉด, value๊ฐ’์„ ์ฐพ์•„์ค„ ์ˆ˜ ์žˆ๊ณ  key๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด None์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค
(๋”•์…”๋„ˆ๋ฆฌ ์ž๋ฃŒํ˜•์—์„œ data['q'] ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๋ฉด ํ•ด๋‹น key๊ฐ€ ์—†์„ ๋•Œ ์—๋Ÿฌ๊ฐ€ ๋œฌ๋‹ค. ํ•˜์ง€๋งŒ get์€ None์„ ๋ฐ˜ํ™˜)

ํ† ํฐ ์œ ํšจ๊ธฐ๊ฐ„ ์„ค์ • ๋ฐ ์—๋Ÿฌ ์„ค์ •
: token์„ ์ƒ์„ฑํ•  ๋•Œ, exp๋ฅผ ์ถ”๊ฐ€๋กœ ๋„ฃ์œผ๋ฉด ์œ ํšจ๊ธฐ๊ฐ„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ
: https://velog.io/@devmin/JWT-token-expired-date-with-timedelta


BASE_DIR

BASE_DIR = Path(__file__).resolve().parent.parent
  • Path(__file__) : settings.py์˜ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•จ
  • resolve().parent.parent : resovle()๋ฅผ ํ†ตํ•ด ์ ˆ๋Œ€๊ฒฝ๋กœ๋ฅผ ๋ฐ˜ํ™˜ ํ›„, ๋ถ€๋ชจ ๊ฒฝ๋กœ๋กœ 2๋ฒˆ ์˜ฎ๊ธฐ๋ฉด django project๊ฐ€ ์ƒ์„ฑ๋œ ์œ„์น˜๊ฐ€ ๋˜๊ณ  ์ด๊ฒƒ์ด BASE_DIR์— ๋‹ด๊ฒจ์ง

์ปจ๋ฒค์…˜
: ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ž˜ ์ƒ๊ฐํ•˜๋ฉฐ ์—”๋“œํฌ์ธํŠธ๋ฅผ ๋งŒ๋“ค์–ด์•ผ.
ProfileCheck > UserView ๋กœ ๋ณ€๊ฒฝ
(๊ทธ๋ž˜์•ผ ์‚ฌ์šฉ์ž ์ •๋ณด ์—…๋ฐ์ดํŠธ๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ ์ƒˆ๋กœ์šด class๋ฅผ ๋งŒ๋“ค ํ•„์š” ์—†์ด ํ•˜์œ„ method๋งŒ ์ถ”๊ฐ€ํ•˜๋ฉด ๋จ)
: ๋ฆฌ์†Œ์Šค๊ฐ€ ์ •ํ™•ํžˆ ๋ฌด์—‡์„ ๊ฐ€๋ฆฌํ‚ค๋Š”์ง€ ํŒŒ์•…ํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ์งœ์•ผ ํ•œ๋‹ค
์˜ˆ๋ฅผ ๋“ค์–ด, ์นดํ…Œ๊ณ ๋ฆฌ ๋ณ„ ์ „์ฒด ์ œํ’ˆ์„ ์กฐํšŒํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ ๊ธฐ์ค€์€ Product ํด๋ž˜์Šค๊ฐ€ ๋˜์–ด์•ผ ํ•˜์ง€ Category ํด๋ž˜์Šค๊ฐ€ ์•„๋‹ˆ๋‹ค. ๋ถˆํ•„์š”ํ•œ ๋‚ด์šฉ์ด ์ถ”๊ฐ€๋˜๋Š”๋ฐ๋‹ค๊ฐ€ ๊ฐ€๋…์„ฑ๋„ ์ข‹์ง€ ์•Š๋‹ค.


์ฐธ๊ณ  ์ž๋ฃŒ:
https://intrepidgeeks.com/tutorial/django-requestgetget

profile
์˜ˆ๋น„ ๊ฐœ๋ฐœ์ž์˜ ๊ธฐ์ˆ  ๋ธ”๋กœ๊ทธ | explore, explore and explore

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