PROJECTS

Django | ํšŒ์›๊ฐ€์ž… sign-up | ๋กœ๊ทธ์ธ sign-in

nicesugi 2022. 5. 27. 23:50

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป 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 ํ•ฉ๋‹ˆ๋‹ค.

mySpartaSns > user > views.py

 

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 %}

template > user > sign-up.html ์ฝ”๋“œ ์ถ”๊ฐ€


 

๐ŸŒฑ ๋กœ๊ทธ์ธ sign-in

1. mySpartaSns > user > views.py

๋กœ๊ทธ์ธ์€ ํšŒ์›๊ฐ€์ž…๊ณผ ๋‹ค๋ฅธ ๋ถ€๋ถ„๋งŒ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

UserModel๋Š” ์ด๋ฏธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋œ ๊ฐ์ฒด

6๋ฒˆ ์ฝ”๋“œ :

๊ธฐ์กด์— ์œ ์ €๊ฐ€ ์žˆ์œผ๋ฉด, ์„ ํ™•์ธํ•ด์ค˜์•ผํ•จ. ๊ทธ๊ฑธ me๋ผ๋Š” ๋ณ€์ˆ˜๋ผ๊ณ  ํ•˜๊ณ 

UserModel์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. .objects์“ด ์ด์œ ๋Š” ์ด๋ฏธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋œ ๊ฐ์ฒด

๊ฑฐ๊ธฐ์—์„œ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ–๊ณ  ์˜ฌ๊ฑด์ง€ ์กฐ๊ฑด์„ ์จ์ฃผ๋ฉด ๋จ. 

.๊ฒŸusername=username ์€ username์ด username์ธ ์‚ฌ๋žŒ์„ ๊ฐ€์ ธ์˜ค๊ณ ์‹ถ๋‹ค๋Š” ์–˜๊ธฐ

๊ณ ๋กœ me ๋Š” ์ด๋ฏธ ํšŒ์›๊ฐ€์ž…์ด ๋œ ์‚ฌ๋žŒ๋“ค์˜ username๋งŒ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ์Œ

 

mySpartaSns > user > views.py

 

2. template > user > sign-in.html

10๋ฒˆ ์ฝ”๋“œ์— method์™€ action์„ ์ถ”๊ฐ€ํ•ด์ค๋‹ˆ๋‹ค.

action ์‹œ์— ๋์— '/' ๊ผญ ๋ถ™์—ฌ์ฃผ์„ธ์š”.

{% csrf_token %} ๋Š” ๋ณด์•ˆ ํ–ฅ์ƒ์„ ์œ„ํ•ด ์žฅ๊ณ ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ POST๋ฐฉ์‹์œผ๋กœ ๋ณด๋‚ผ๋•Œ ์ ์–ด์ค๋‹ˆ๋‹ค.

template > user > sign-in.html ์ฝ”๋“œ์ถ”๊ฐ€ 2์ค„

 

 

๋ฐ˜์‘ํ˜•