๐ฉ๐ป๐ป Github
https://github.com/nicesugi/DjangoClass/tree/main/django/sns
๐ฑ ํ์๊ฐ์ sign-up
1. mySpartaSns > user > views.py
if ๋ฉ์๋๊ฐ GET ๋ฐฉ์์ด๋ผ๋ฉด, 'user/signup.html'์ render๋ฅผ ์จ์ ๋๋ ค์ฃผ์.
elif ๋ฉ์๋๊ฐ POST ๋ฐฉ์์ด๋ผ๋ฉด,
๋ฐ์ดํฐ๋ฒ ์ด์ค์์ username์ ๊ฐ์ ธ์ username์ ๋ณ์๋ก ์ ์ฅ,
๋ฐ์ดํฐ๋ฒ ์ด์ค์ username์ด ์๋ค๋ฉด None์ฒ๋ฆฌํด username์ ๋ณ์๋ก ์ ์ฅ
Xpassword
Xpassword2
Xbio
X ํ์ํด๋ ์ธ ๊ฐ๋ ๋์ผํ ๋ด์ฉ์ผ๋ก ๋ณ์๋ฅผ ์ ์ฅํฉ๋๋ค.
if password์ password2๊ฐ ๋ค๋ฅด๋ค๋ฉด, ์ ์ฅ์ด ๋๋ฉด ์๋จ์ผ๋ก ํ์ด์ง('user/signup.html')๋ฅผ ๋ค์ ๋ณด์ฌ์ค
else new_user๋ผ๋ ๋ณ์ ์ด๋ฆ์ผ๋ก UserModel ํด๋์ค๋ฅผ ๊ฐ์ ธ์ด
UserModel ํด๋์ค์ username์ username ์ด๋ผ๊ณ ํ ๊ฒ
UserModel ํด๋์ค์ password์ password ์ด๋ผ๊ณ ํ ๊ฒ
UserModel ํด๋์ค์ bio์ bio ์ด๋ผ๊ณ ํ ๊ฒ
(new_user ์์๋ ์ ์ฅ์ด ๋์์ง๋ง, ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์๋ ์ ์ฅ์ด ๋์ด์์ง ์์์ ์๋ ์ฝ๋๋ฅผ ์์ฑํด์ค๋๋ค.)
์ง๊ธ๊น์ง ์ ์๋ ์ ๋ณด๋ค(else) ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ
return ํ์๊ฐ์ ์ด ์๋ฃ ๋์์ ๋๋ง /sign-in/์ผ๋ก redirect ํฉ๋๋ค.
2. template > user > sign-up.html
10๋ฒ ์ฝ๋์ method์ action์ ์ถ๊ฐํด์ค๋๋ค.
action ์์ ๋์ '/' ๊ผญ ๋ถ์ฌ์ฃผ์ธ์.
{% csrf_token %} ๋ ๋ณด์ ํฅ์์ ์ํด ์ฅ๊ณ ์์ ๋ฐ์ดํฐ๋ฅผ POST๋ฐฉ์์ผ๋ก ๋ณด๋ผ๋ ์ ์ด์ค๋๋ค.
<form class="form-area">
#์์ ์ฝ๋๋ฅผ ๋ฐ๊ฟ์ฃผ๋๋ก ํ๊ฒ ์ต๋๋ค.
<form class="form-area" method="POST" action="/sign-up/">
{% csrf_token %}
๐ฑ ๋ก๊ทธ์ธ sign-in
1. mySpartaSns > user > views.py
๋ก๊ทธ์ธ์ ํ์๊ฐ์ ๊ณผ ๋ค๋ฅธ ๋ถ๋ถ๋ง ์ค๋ช ํ๊ฒ ์ต๋๋ค.
6๋ฒ ์ฝ๋ :
๊ธฐ์กด์ ์ ์ ๊ฐ ์์ผ๋ฉด, ์ ํ์ธํด์ค์ผํจ. ๊ทธ๊ฑธ me๋ผ๋ ๋ณ์๋ผ๊ณ ํ๊ณ
UserModel์ ๋ถ๋ฌ์จ๋ค. .objects์ด ์ด์ ๋ ์ด๋ฏธ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฐ๊ฒฐ๋ ๊ฐ์ฒด
๊ฑฐ๊ธฐ์์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณ ์ฌ๊ฑด์ง ์กฐ๊ฑด์ ์จ์ฃผ๋ฉด ๋จ.
.๊ฒusername=username ์ username์ด username์ธ ์ฌ๋์ ๊ฐ์ ธ์ค๊ณ ์ถ๋ค๋ ์๊ธฐ
๊ณ ๋ก me ๋ ์ด๋ฏธ ํ์๊ฐ์ ์ด ๋ ์ฌ๋๋ค์ username๋ง ๋ถ๋ฌ์ฌ ์ ์์
2. template > user > sign-in.html
10๋ฒ ์ฝ๋์ method์ action์ ์ถ๊ฐํด์ค๋๋ค.
action ์์ ๋์ '/' ๊ผญ ๋ถ์ฌ์ฃผ์ธ์.
{% csrf_token %} ๋ ๋ณด์ ํฅ์์ ์ํด ์ฅ๊ณ ์์ ๋ฐ์ดํฐ๋ฅผ POST๋ฐฉ์์ผ๋ก ๋ณด๋ผ๋ ์ ์ด์ค๋๋ค.