Menu
CoddyTech

Đă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.

challenge icon

Thử thách

Dễ

Thêm trang đăng nhập.

  1. Trong mysite/urls.py, đưa django.contrib.auth.urls vào dưới đường dẫn accounts/.
  2. Tạo notes/templates/registration/login.html mở rộng notes/base.html, hiển thị form trong biểu mẫu POST có {% csrf_token %} và nút Log in.
  3. Trong settings.py, đặt LOGIN_REDIRECT_URL thành "/".
  4. Trong base.html, thêm liên kết Log in trỏ đế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