Hướng dẫn xử lý Login và Logout User trong Python Django

Lập trình web với Python bằng Django

5.0 (1 đánh giá)
Tạo bởi Kteam Cập nhật lần cuối 3 năm trước 52.789 lượt xem 7 bình luận
Tác giả/Dịch giả: Kteam
Học nhanh

Danh sách bài học

Hướng dẫn xử lý Login và Logout User trong Python Django

Ghi chú

Nội dung bài viết bạn đang xem được update từ tháng 06/2019. Vì vậy sẽ có đôi chút khác biệt giữa VIDEO và NỘI DUNG BÀI VIẾT.

Chúng ta sẽ có nhiều cập nhập hơn về cả bài viết lẫn video trong thời gian tới. Nhớ like / share hoặc đánh giá 5 sao để Kteam có động lực nhé! 

Cảm ơn các bạn! 


Dẫn nhập

Ở bài trước, Kteam đã hướng dẫn các bạn xong cách TẠO FORM ĐĂNG KÝ TÀI KHOẢN TRONG PYHTON DJANGO

Trong bài này Kteam hướng dẫn cách xử lý đăng nhập và đăng xuất của user trong Python Django.


Nội dung

Để theo dõi bài này tốt nhất, bạn nên xem qua bài:

Bài này sẽ giới thiệu những nội dung sau:

  • Built-in user authentication system
  • Thiết kế template đăng nhập và đăng xuất

Built-in user authentication system

Tại vì Django đã giúp cho chúng ta thiết kế 1 hệ thống user có sẵn, vì vậy Django đã hỗ trợ cho chúng ta những chức năng đăng nhập và đăng xuất của hệ thống. Vì vậy, trong bài này Kteam chỉ hướng dẫn các bạn cách config các chức năng đó
Ở urls app home, ta sẽ import views từ authentication để dùng các function đã xây dựng sẵn:

  • Để tránh nhầm lẫn views của app home, Kteam định danh views của authauth_views.
  • tạo path login/: dùng class LoginView gọi function as_view để xử lý đăng nhập, truyền tham số template_name để custom lại template đăng nhập.
  • tạo path logout/: dùng class LogoutView gọi function as_view để xử lý đăng xuất,
  • truyền tham số next_page để thực hiện sau khi đăng xuất sẽ về đâu (ở đây Kteam sẽ cho về trang chủ).

Tiếp theo, Kteam sẽ tạo template login, LoginView có thiết kế Form login để đăng nhập, tuy nhiên Kteam muốn custom lại form để Việt hóa:

  • thiết kế label tiếng Việt, rồi sau đó tạo các thẻ input thông qua các field của form đăng nhập.
  • tạo input next để sau khi đăng nhập sẽ đi về đâu.
  • tạo input submitvalue Đăng nhập
  • Để tính trường hợp lỗi, nên dùng vòng lặp for lấy value từ form.errors.

Bây giờ ta thử kiểm tra kết quả

Sau khi đăng nhập, nếu về trang chủ thì đăng nhập thành công. Tương tự với path đăng xuất.


Thiết kế template đăng nhập và đăng xuất

Bây giờ, Kteam sẽ thiết kế lại ở base.html cho 2 đường link đăng nhập và đăng xuất để người dùng có thể nhấn vào. Ta chỉnh ở mục header lại như sau:

Kiểm tra nếu user đã đăng nhập thì hiển thị xin chào user và có đăng xuất. Kteam sửa lại thêm 1 col góc bên phải chiếm 1/12.

Nếu chưa đăng nhập thì hiển thị đăng ký và đăng nhập.

Bây giờ ta thử kiểm tra lại:

Chức năng thì khá ổn, do Kteam không tập trung thiết kế giao diện cho bài học nên các bạn có thể custom lại cho đẹp hơn.


Kết luận

Trong bài này, chúng ta đã tìm hiểu Hướng dẫn xử lý Login và Logout User.

Bài sau chúng ta sẽ cùng tìm hiểu về cách SỬ DỤNG GENERIC VIEW.

Cảm ơn các bạn đã theo dõi bài viết. Hãy để lại bình luận hoặc góp ý của mình để phát triển bài viết tốt hơn. Và đừng quên “Luyện tập – Thử Thách – Không ngại khó


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Hướng dẫn xử lý Login và Logout User trong Python Django dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Tác giả/Dịch giả

Khóa học

Lập trình web với Python bằng Django

Lập trình web với Python bằng Django

Đánh giá

lạc lối đã đánh giá 3 năm trước

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
HEX Pythoner đã bình luận 3 năm trước
from django.contrib.auth import views as auth_views

urlpatterns = [
    ...
    path('Login/', auth_views.LoginView.as_view(template_name = 'Pages/Login.html'), name='Login'),
    path('Logout/', auth_views.LogoutView.as_view(next_page = '/'), name = 'Logout'),
]

Phần path sửa lại như này là ok nha.

giang347 đã bình luận 6 năm trước

AttributeError: module 'django.contrib.auth.views' has no attribute 'login'

Mình cx bị lỗi tương tự như vậy, search gg mà ko biết cách sửa sao, nào là LoginViews,..

ducanhrevilo đã bình luận 6 năm trước

ban oi sao cua mk no hien ntn ak , ban giup mk voi 

AttributeError: module 'django.contrib.auth.views' has no attribute 'login'

jvm.haoleminh đã bình luận 7 năm trước

Hay quá, mình đang cần tìm hiểu.

Bạn có thể hướng dẫn làm phần register user nữa được không?

cảm ơn bạn!

Không có video.