Smart Drone E88 Pro HD Camera Shoot OriginalBadan yang dapat dilipat, dilengkapi dengan tas penyimpanan gratis. Waktu penerbangan : 20 menit. Jarak kendali jarak jauh : sekitar 150 meter. Sinyal video : WiFi Buy |
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