๐ฅ 1์ฐจ ํ๋ก์ ํธ ์งํํ๋ฉด์ ๋ฐ์ ํผ๋๋ฐฑ ์ ๋ฆฌ
.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