ํ์๊ฐ์ ํ์ผ๋๊น ๋ก๊ทธ์ธ๋ ๋ ์ ์๊ฒ ํด๋ณด์!!!!
ํ์๊ฐ์ ์ผ๋ก ์ ์ฅ๋ ์ ์ ๋ฅผ ๋ก๊ทธ์ธ ํ ์ ์๊ฒ ํด์ฃผ์!
์ธ์ ์ ์ด์ฉํ ๊ฑด๋ฐ
์ธ์ ์ ๊ฐ์ ์ฌ๋์ด ์์ฒญํ๋์ง ํ์ธํ ์ ์๋๋ก ๋์์ฃผ๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ์ ์ฅํ ์ ์๋ค!
1. user ์ฑ์ views.py ์ธํ ํ๊ธฐ
2. signin.html์ form ํ๊ทธ ์์ฑ ๋ฃ๊ธฐ
3. view์ ๋ก๊ทธ์ธ ์์ ๋ง๋ฌด๋ฆฌํ๊ธฐ
1. user ์ฑ์ views.py ์ธํ ํ๊ธฐ
from django.shortcuts import render, redirect
from .models import UserModel
from django.http import HttpResponse
# Create your views here.
def sign_up_view(request):
if request.method == 'GET': # GET ๋ฉ์๋๋ก ์์ฒญ์ด ๋ค์ด ์ฌ ๊ฒฝ์ฐ
return render(request, 'user/signup.html')
elif request.method == 'POST': # POST ๋ฉ์๋๋ก ์์ฒญ์ด ๋ค์ด ์ฌ ๊ฒฝ์ฐ
username = request.POST.get('username', None)
password = request.POST.get('password', None)
password2 = request.POST.get('password2', None)
bio = request.POST.get('bio', None)
if password != password2:
return render(request, 'user/signup.html')
else:
new_user = UserModel()
new_user.username = username
new_user.password = password
new_user.bio = bio
new_user.save()
return redirect('/sign-in')
def sign_in_view(request):
if request.method == 'POST':
return HttpResponse("๋ก๊ทธ์ธ ์ฑ๊ณต!")
elif request.method == 'GET':
return render(request, 'user/signin.html')
HttpResponse๋ฅผ ์ด์ฉํด์ ๋ก๊ทธ์ธ ์ฑ๊ณตํ๋ฉด ๋ฉ์ธ์ง ๋์์ฃผ๋ ค๊ณ import ๋ฏธ๋ฆฌ ํด๋๊ณ
post ์์ฒญ์ด๋ฉด ๋ฉ์ธ์ง์ฐฝ ๋์์ฃผ๊ณ
get ์ด๋ฉด ํ๋ฉด์ ๋ณด์ฌ์ฃผ์!
2. signin.html์ form ํ๊ทธ ์์ฑ ๋ฃ๊ธฐ
<!-- ์๋ถ๋ถ ์๋ต -->
<div class="wrap">
<h2 class="title-center"> ๋ก๊ทธ์ธ</h2>
<form class="form-area" action="/sign-in/" method="post">
{% csrf_token %}
<div class="form-group mt-2 mb-2">
<!-- ์๋ซ ๋ถ๋ถ ์๋ต -->
method๋ก post ์ธ๊ฑฐ ์๋ ค์ฃผ๊ณ , action์ผ๋ก sign-in์ ๊ฐ๊ฑฐ๋ผ๊ณ ์๋ ค์ฃผ์!
๋ณด์๋ ์ถ๊ฐ!
๊ทธ๋ฆฌ๊ณ input์ name, ์ฌ๊ธฐ์์๋ username๊ณผ password ๊ธฐ์ตํด์ฃผ๊ณ view ์์ ๋ง๋ฌด๋ฆฌํ์!
3. view์ ๋ก๊ทธ์ธ ์์ ๋ง๋ฌด๋ฆฌํ๊ธฐ
user์ฑ์ views.py์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค์
def sign_in_view(request):
if request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
return HttpResponse("๋ก๊ทธ์ธ ์ฑ๊ณต!")
elif request.method == 'GET':
return render(request, 'user/signin.html')
user ๋ฐ์ดํฐ๊ฐ ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์๋์ง ์๋์ง ํ์ธํ๊ณ
์์ผ๋ฉด ๋ถ๋ฌ์ค๊ณ ์์ผ๋ฉด ๋ค์ ๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ์!
# user/views.py
def sign_in_view(request):
if request.method == 'POST':
username = request.POST.get('username', None)
password = request.POST.get('password', None)
me = UserModel.objects.get(username=username) # ์ฌ์ฉ์ ๋ถ๋ฌ์ค๊ธฐ
# ์ผ์ชฝ username์ UserModel ์์ ์๋๊ฒ
# ์ค๋ฅธ์ชฝ username์ ๋ฃ์ด์ค ๊ฒ
if me.password == password: # ์ ์ฅ๋ ์ฌ์ฉ์์ ํจ์ค์๋์ ์
๋ ฅ๋ฐ์ ํจ์ค์๋ ๋น๊ต
request.session['user'] = me.username # ์ธ์
์ ์ฌ์ฉ์ ์ด๋ฆ ์ ์ฅ
return HttpResponse("๋ก๊ทธ์ธ ์ฑ๊ณต!")
else: # ๋ก๊ทธ์ธ์ด ์คํจํ๋ฉด ๋ค์ ๋ก๊ทธ์ธ ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ
return redirect('/sign-in')
elif request.method == 'GET':
return render(request, 'user/signin.html')
๋ก๊ทธ์ธ ํ๋ฉด์์ ๋ก๊ทธ์ธํ๋ฉด
์๋ ๊ฒ ์ ๋ฌ๋ค!
์์ฐ ์์ฃผ ํ๋ชฐ์ ์น๋๊ตฌ๋ง ์ ์ ๋ฆฌํด์ผ์ง
'๐๐ช > Django' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
3์ฃผ์ฐจ_2๋ฒ์งธ_ํ์๊ฐ์ , ๋ก๊ทธ์ธ ์์ ํ๊ธฐ (0) | 2022.09.23 |
---|---|
3์ฃผ์ฐจ_1๋ฒ์งธ_์ฌ์ฉ์ ๋ชจ๋ธ ๋น๊ต, ๋ชจ๋ธ ์ ๊ทธ๋ ์ด๋, ์ ์ฉ (0) | 2022.09.23 |
2์ฃผ์ฐจ_4๋ฒ์งธ_ํ์๊ฐ์ ๊ธฐ๋ฅ ๋ง๋ค๊ธฐ (0) | 2022.09.23 |
2์ฃผ์ฐจ_3๋ฒ์งธ_ํ์๊ฐ์ , ๋ก๊ทธ์ธ ํ๋ฉด ๋์ฐ๊ธฐ (1) | 2022.09.22 |
2์ฃผ์ฐจ_2๋ฒ์งธ_Tweet ์์ ํ๊ธฐ (0) | 2022.09.22 |
๋๊ธ