![]() | |
Parim Eyewear Sunnies Kacamata Sunglasses Butterfly - Biruadikan tampilan Anda terlihat lebih stylish dengan menggunakan kacamata persembahan Parim Eyewear. Memiliki lensa berwarna biru yang menarik sehingga kacamata ini dapat memberikan kesan unik dan berbeda pada tampilan gaya Anda. Cocok digunakan untuk menunjang berbagai aktivitas outdoor, seperti bermain di pantai, traveling, atau pun berkendara. Free Klik Disini ! |
Di tutorial sebelumnya kita telah belajar tentang Django User Register.
Di bagian ke 5 dari tutorial Mini Wallet, kita akan belajar tentang cara membuat session login dan juga cara menggunakan decorator auth login.
Seperti biasa untuk mengikuti tutorial ini, pastikan Anda telah mengikuti tutorial sebelumnya terkait dengan Django User Register.
{% load static %}
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<title>Form Register New User</title>
<link href="{% static 'css/bootstrap.min.css' %}" rel="stylesheet">
<link href="{% static 'css/user/register.css' %}" rel="stylesheet"><style>
.bd-placeholder-img {
font-size: 1.125rem;
text-anchor: middle;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
}@media (min-width: 768px) {
.bd-placeholder-img-lg {
font-size: 3.5rem;
}
}
</style>
</head>
<body class="text-center">
<main class="form-register">
<form method="post" action="">
{% csrf_token %}
<h1 class="h3 mb-3 fw-normal">Form Login User</h1>
<div class="form-floating">
<input
type="email"
class="form-control"
name="email"
id="email"
placeholder="name@example.com"
required>
<label for="email">Email address</label>
</div>
<div class="form-floating">
<input
type="password"
class="form-control"
name="password"
id="password"
placeholder="Password"
required>
<label for="password">Password</label>
</div>
<button class="w-100 btn btn-lg btn-primary" type="submit">Login</button>
</form>
</main>
</body>
</html>
class LoginUser(TemplateView):
template_name = 'user/login.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
return context
def post(self, *args, **kwargs):
context = self.get_context_data()
return super(TemplateView, self).render_to_response(context)
Di bagian ini modifikasi class IndexTemplateView() menjadi class DashboardView().
Setelah Anda mengubah nama class, selanjutnya buat file dengan nama ulrs.py
from django.urls import path
from home import viewsurlpatterns = [
path('dashboard', views.DashboardView.as_view(), name='dashboard-page'),
]
Kemudian ubah default index web menjadi halaman login, modifikasi urls.py yang ada di main project menjadi seperti dibawah ini :
urlpatterns = [
path('', views.LoginUser.as_view(), name='index_page'),
path('accounts/login/', views.LoginUser.as_view(), name='user_login'),
path('users/', include('users.urls')),
path('home/', include('home.urls')),
]
b) Method dispatch()
Tambahkan method dispatch() ke dalam class DashboardView()
def dispatch(self, *args, **kwargs):
return super().dispatch(*args, **kwargs)
c) Import library
from django.utils.decorators import method_decorator
from django.contrib.auth.decorators import login_required
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super().dispatch(*args, **kwargs)
def userLogout(request):
try:
request.session.clear()
except Exception as e:
pass
return HttpResponseRedirect('/accounts/login/')
Github : https://github.com/halovina/e-wallet/tree/django-session-login