ADVAN Laptop Notebook i3 GenADVAN Laptop Notebook Soulmate 14 inch FHD IPS INTEL i3 8GB+256GB WINDOWS 11 Original. ADVAN kembali menghadirkan produk laptop di Indonesia yang ditenagai oleh Otak INTEL i3 Gen 11 untuk Para Mahasiswa, pekerja, conten creator, editing foto dan video dengan design yang sangat Modern. 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