2021. 5. 23. 14:25ใBackend/๐ Python
Urls.py
์ฒซ์ค์ from django.contrib.auth.views import LogoutView, LoginView ์์
LoginView ์ LogoutView ๋ผ๋ ํด๋์ค๋ฅผ ์์๋ฐ์์์ ํ์ธํ ์ ์์ต๋๋ค.
from django.contrib.auth.views import LogoutView, LoginView
from django.urls import path
from account.views import AccountCreateView, hello_world
app_name = "account"
urlpatterns = [
path('hello_world', hello_world, name='hello_world'),
path('create/', AccountCreateView.as_view(), name='create'),
# login, logout ๋งคํ ์ฝ๋
path('login/', LoginView.as_view(template_name='login.html'), name="login"),
path('logout/', LogoutView.as_view(), name='logout'),
]
CBV์์๋ login, logout ์ ์ํด ๋ฐ๋ก views.py ๋ด๋ถ์ ํจ์๋ ํด๋์ค๋ฅผ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค.
urls.py์์ ๊ณง๋ฐ๋ก login.html๋ก ๋ก๊ทธ์ธ ํ์(form)์ ๋ ๋๋ง ํด์ค๋๋ค.
์๋์ login.html์ ํ์ธํด๋ด ์๋ค.
login.html
<div style="text-align: center; max-width: 500px; margin: 4rem auto">
<div>
<h4>LOGIN</h4>
</div>
<div>
<form action="" method="post">
{% csrf_token %}
{{ form }}
<input type="submit">
</form>
</div>
</div>
{{form}} ์ urls.py์
path('login/', LoginView.as_view(template_name='login.html'), name="login")
์ ์ฝ๋์์ ์ ์ํ ๋๋ก, login.html๋ก LoginvView์ ํด๋นํ๋ ๋ด์ฉ์ {{form}}์ ํํ๋ก ๋ณด๋ธ ๊ฒ ๋ฟ์ ๋๋ค.
ํ๊ทธ ๋ด๋ถ์ {{form}} ๋ง ์์ฑํ๋ฉด ์๋์ฒ๋ผ login ํ๋ฉด์ด ์๋์ผ๋ก ์์ฑ๋ฉ๋๋ค. (css๋ ๋ฐ๋ก ์ ํ์ต๋๋ค)
LogoutView.as_view()
logout์ ๋ฐ๋ก htmlํ์ด์ง๊ฐ ํ์์์ต๋๋ค. ๊ทธ์ ๋ก๊ทธ์์ ๋ฒํผ์ ๋๋ฅด๋ฉด ์๋ํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
๋ก๊ทธ์์ ๋ฒํผ์ ๋๋ฅธ ํ ์ด๋๋ก redirect ๋ ์ง๋ง ์ ํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ด๋ฅผ ์ ํ๊ธฐ ์ํด settings.py๋ก ๊ฐ๋๋ค.
Settings.py
LOGIN_REDIRECT_URL = reverse_lazy('account:hello_world')
LOGOUT_REDIRECT_URL = reverse_lazy('account:login')
๋ก๊ทธ์์ ํ์ redirect ๋ url์ด ์ด๋ค ๊ฒ์ธ์ง, reverse_lazy() ๋ฉ์๋๋ก ๋งคํํด์ฃผ๋ฉด ๋ฉ๋๋ค.
์ ๋ "account ์ฑ ๋ด๋ถ์ login" ์ด๋ผ๋ ์ด๋ฆ์ url๋ก ๋งคํํด์ฃผ์์ต๋๋ค.
์ฆ ๋ก๊ทธ์์ ๋ฒํผ์ ๋๋ฅธ ํ์ ๋ณด์ฌ์ค ํ๋ฉด์ ๋ฐ๋ก ๋ง๋ค ํ์์์ด, ๊ทธ์ login.html๋ก ๋งคํํด์ฃผ๋ฉด ๋ฉ๋๋ค.
'Backend > ๐ Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ต๊ทผ ํ์ด์ฌ PS ํ๋ฉด์ ๋ฐฐ์ด ๊ฒ (0) | 2022.05.05 |
---|---|
Django CBV (3) - DetailView (0) | 2021.05.23 |
Django CBV (1) - ํ์๊ฐ์ (0) | 2021.05.23 |
Django Bootstrap4 ์ฐ๋ (0) | 2021.05.23 |
ํ์ด์ฌ ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ, ์ค๋ฒ๋ก๋ฉ (2) | 2021.05.18 |