Đăng nhập
Thuộc phần Người dùng và tài khoản trong hành trình Django của Coddy. Bài học 2 trên 16.
Trang web có thể nhận biết ai đã đăng nhập, nhưng chưa có trang đăng nhập. Django có sẵn view LoginView. Thêm một dòng vào urls.py của dự án để dùng view này cùng các trang đăng xuất và đổi mật khẩu:
path("accounts/", include("django.contrib.auth.urls")),Giờ đây, /accounts/login/ đã có sẵn với tên login. View này hiển thị registration/login.html cùng một form có trường username và password. Bạn cần tự viết template đó dưới dạng một form POST thông thường. Django tìm trong thư mục templates/ của mỗi ứng dụng. Đường dẫn bắt đầu bằng registration/, không phải notes/, vì view của Django không biết ứng dụng của bạn.
Sau khi đăng nhập thành công, view chuyển hướng đến LOGIN_REDIRECT_URL. Giá trị mặc định là /accounts/profile/, nhưng trang này chưa tồn tại, nên hãy đặt giá trị này trong settings.py.
Thử thách
DễThêm trang đăng nhập.
- Trong
mysite/urls.py, đưadjango.contrib.auth.urlsvào dưới đường dẫnaccounts/. - Tạo
notes/templates/registration/login.htmlmở rộngnotes/base.html, hiển thịformtrong biểu mẫu POST có{% csrf_token %}và nútLog in. - Trong
settings.py, đặtLOGIN_REDIRECT_URLthành"/". - Trong
base.html, thêm liên kếtLog intrỏ đến{% url 'login' %}cho khách chưa đăng nhập.
Đăng nhập bằng tài khoản ada (mật khẩu coddy-pass-123): phần đầu trang hiển thị Signed in as ada.
Tự làm thử
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path("admin/", admin.site.urls),
path("", include("notes.urls")),
]
Tất cả bài học trong Người dùng và tài khoản
Tự luyện tập: Playground Django