Đăng nhập python và đăng ký mã hệ thống

Django đi kèm với các tính năng cần thiết để thiết lập một hệ thống xác thực người dùng hoàn chỉnh. Trong hướng dẫn này, chúng tôi sẽ đề cập đến các thành phần quan trọng nhất của hệ thống xác thực người dùng ở Django, cụ thể là

  • Đăng ký
  • Đăng nhập
  • Đăng xuất

Đến cuối hướng dẫn này, bạn sẽ có thể

  • Tạo dự án Django nơi người dùng có thể đăng ký, đăng nhập và đăng xuất
  • Tạo biểu mẫu trong Django
  • Chuyển hướng người dùng sau khi đăng nhập hoặc đăng xuất thành công
điều kiện tiên quyết

Hướng dẫn này giả định rằng bạn có kiến ​​thức tốt về Django và bạn đã cài đặt Python3 trong hệ điều hành của mình

Tạo một dự án Django

Bạn nên thiết lập một môi trường ảo để đảm bảo rằng các phần phụ thuộc của dự án được tách biệt khỏi các gói hệ thống. Môi trường ảo cũng giúp cài đặt đúng phiên bản mô-đun dễ dàng hơn

Bắt đầu bằng cách tạo một thư mục để chứa các tệp dự án của bạn

mkdir Django_Login

cd vào thư mục bạn đã tạo ở trên bắt đầu bằng cách tạo một môi trường ảo với mô-đun venv python

cd Django_Login
python -m venv my_env

Mô-đun

cd Django_Login
python -m venv my_env
1 cung cấp hỗ trợ để tạo “môi trường ảo” nhẹ với các thư mục trang web của riêng chúng, tùy chọn tách biệt khỏi các thư mục trang web hệ thống. Mỗi môi trường ảo có tệp nhị phân Python riêng [khớp với phiên bản của tệp nhị phân được sử dụng để tạo môi trường này] và có thể có bộ gói Python đã cài đặt độc lập riêng trong thư mục trang của nó

Giải thích về môi trường ảo Python

Cách sử dụng Venv và Anaconda trong các dự án Khoa học dữ liệu và Python của bạn

con trăn. tiếng Anh đơn giản. io

Kích hoạt môi trường ảo và cài đặt Django

source my_env/bin/activatepip install django

Tạo một dự án Django có tên là django_auth

django-admin startproject django_auth

Thư mục dự án của bạn bây giờ trông như thế này

Xác thực người dùng trong Django

Django hoàn chỉnh với hệ thống xác thực, do đó bạn không phải tạo hệ thống xác thực từ đầu

Hệ thống xác thực Django được cung cấp bởi

cd Django_Login
python -m venv my_env
2 và bao gồm những điều sau đây

người dùng

Quyền. Cờ nhị phân [có/không] chỉ định liệu người dùng có thể thực hiện một tác vụ nhất định hay không

Các nhóm. Một cách chung để áp dụng nhãn và quyền cho nhiều người dùng

Một hệ thống băm mật khẩu có thể định cấu hình

Biểu mẫu và công cụ xem để đăng nhập người dùng hoặc hạn chế nội dung

Một hệ thống phụ trợ có thể cắm

cd Django_Login
python -m venv my_env
2 cung cấp tất cả logic cần thiết để người dùng đăng ký, đăng nhập và đăng xuất thành công và hạn chế nội dung đối với người dùng trái phép

cd Django_Login
python -m venv my_env
2is đã có mặt trong dự án Django của bạn. Nếu bạn mở tệp
cd Django_Login
python -m venv my_env
5, bạn sẽ tìm thấy các cấu hình cụ thể là django. đóng góp. xác thực và django. đóng góp. contenttypes trong danh sách của
cd Django_Login
python -m venv my_env
6, như hình bên dưới

Bạn cũng có thể tìm cấu hình phần mềm trung gian xác thực và phiên trong phần cài đặt. tập tin py

Bảng cơ sở dữ liệu xác thực

Chạy lệnh di chuyển sẽ tạo các bảng cần thiết cho hệ thống xác thực người dùng. Hãy chạy lệnh

cd Django_Login
python -m venv my_env
0

Lệnh sẽ tạo các bảng thực tế trong cơ sở dữ liệu của chúng tôi và bạn sẽ thấy một cái gì đó như thế này

Bạn cũng có thể xem các bảng và xác nhận rằng chúng đã được tạo

Như bạn có thể thấy ở trên, chúng tôi có các bảng sau

  • auth_group -
  • auth_group_permissions
  • auth_user
  • auth_user_groups-

Tạo siêu người dùng

Hãy tạo một siêu người dùng để chúng ta có thể truy cập vào trang quản trị Django

cd Django_Login
python -m venv my_env
1

Chạy máy chủ phát triển

cd Django_Login
python -m venv my_env
2

Bạn sẽ thấy một cái gì đó như thế này

cd Django_Login
python -m venv my_env
3

Ứng dụng sẽ bắt đầu tại http. //127. 0. 0. 1. 8000/. Nếu bạn điều hướng đến http. //127. 0. 0. 1. 8000/admin, bạn có thể đăng nhập bằng thông tin siêu người dùng mà bạn đã tạo ở trên

Khi bạn đăng nhập, trang quản trị trông như thế này

Như bạn có thể thấy ở trên, bạn có thể tạo người dùng từ trang quản trị, nhưng đó không phải là điều chúng tôi muốn. Chúng tôi muốn cung cấp một giao diện nơi người dùng có thể đăng ký, đăng nhập và đăng xuất một cách độc lập

Lượt xem xác thực

Vì Django đã cung cấp tất cả thông tin đăng nhập cần thiết để đăng ký, đăng nhập và đăng xuất, chúng tôi cần tạo các trang nơi người dùng có thể thực hiện xác thực của riêng họ

Để làm điều đó, Django cung cấp

cd Django_Login
python -m venv my_env
7, đưa chúng vào tệp gốc
cd Django_Login
python -m venv my_env
8 như hình bên dưới

Các URL được cung cấp bởi Django auth là

tài khoản/đăng nhập/ [tên=’đăng nhập’]

tài khoản/đăng xuất/ [tên=’đăng xuất’]

tài khoản/password_change/ [name=’password_change’]

tài khoản/password_change/done/ [name=’password_change_done’]

tài khoản/password_reset/ [name=’password_reset’]

tài khoản/password_reset/done/ [name=’password_reset_done’]

accounts/reset/
accounts/reset/done/ [name=’password_reset_complete’]

Tạo ứng dụng người dùng

Hãy tạo một ứng dụng người dùng sẽ xử lý tất cả những thứ liên quan đến xác thực. Tạo một ứng dụng Django được gọi là người dùng bằng lệnh

cd Django_Login
python -m venv my_env
9

cd Django_Login
python -m venv my_env
7

Lệnh trên sẽ tạo một thư mục có tên là

source my_env/bin/activatepip install django
0 trong dự án
source my_env/bin/activatepip install django
1. Các tập tin của bạn bây giờ sẽ trông như thế này

Vì Django đã đi kèm với mô hình Người dùng nên chúng tôi sẽ không tạo mô hình cho ứng dụng này

Mở

cd Django_Login
python -m venv my_env
5 và thêm ứng dụng người dùng vào
cd Django_Login
python -m venv my_env
6

Tạo Trang chủ

Trang chủ sẽ là trang đầu tiên người dùng nhìn thấy khi họ mở ứng dụng của chúng tôi

Bất cứ khi nào Django muốn hiển thị một trang, nó sẽ tự động tìm trang đó trong thư mục mẫu của ứng dụng. Cách tốt nhất là đặt trang HTML bên trong một thư mục có cùng tên với ứng dụng

Tạo thư mục mẫu trong ứng dụng người dùng. Bên trong các mẫu bạn vừa tạo, tạo một thư mục khác

source my_env/bin/activatepip install django
0. Tiếp theo, tạo một tệp
source my_env/bin/activatepip install django
5 trong thư mục
source my_env/bin/activatepip install django
0 bên trong nhất. Cấu trúc của ứng dụng người dùng của bạn bây giờ sẽ trông như thế này

Thêm đoạn mã sau vào

source my_env/bin/activatepip install django
5

Đừng lo lắng về url, hiện tại chúng không hoạt động

Bây giờ hãy kết xuất trang chủ. Django cung cấp hàm

source my_env/bin/activatepip install django
8, tải mẫu và cung cấp ngữ cảnh khi chúng được truyền dưới dạng đối số. Mở
source my_env/bin/activatepip install django
9 và viết chế độ xem sau, hiển thị trang chủ

Ánh xạ Chế độ xem tới một URL

Tạo một tệp có tên

cd Django_Login
python -m venv my_env
8 trong thư mục ứng dụng
source my_env/bin/activatepip install django
0 và thêm URL cho trang chủ. Ở đầu tệp
cd Django_Login
python -m venv my_env
8, nhập đối tượng
django-admin startproject django_auth
3 từ
django-admin startproject django_auth
4 và chức năng xem trang chủ từ
django-admin startproject django_auth
5

Đừng quên thêm URL ứng dụng của người dùng vào URL của dự án. Tệp

django-admin startproject django_auth
6 bây giờ trông như thế này

Bây giờ khi bạn chạy máy chủ và điều hướng đến 127. 0. 0. 1. 8000/home/, bạn sẽ thấy trang sau

trang chủ

Lượt xem xác thực

Django cung cấp danh sách các lớp xem xác thực bao gồm tất cả logic để thực hiện các mục đích duy nhất của chúng. Những quan điểm này là

  • Lớp Đăng nhậpXem
  • lớp Đăng xuấtXem
  • lớp
    django-admin startproject django_auth
    7
  • lớp PasswordChangeDoneView
  • lớp PasswordResetView

Vì các chế độ xem này đã được triển khai, chúng tôi không cần phải viết logic từ đầu, thay vào đó chúng tôi cần cung cấp mẫu cho mỗi chế độ xem

Tạo trang đăng nhập

Theo mặc định, http. //127. 0. 0. 1. 8000/accounts/login/ url sẽ cố hiển thị mẫu đăng nhập. Theo mặc định, tên của mẫu dành cho người dùng đăng nhập phải là

django-admin startproject django_auth
8

Django sẽ tìm mẫu đăng nhập trong thư mục đăng ký trong thư mục mẫu. Hãy tạo một thư mục trong thư mục mẫu của ứng dụng người dùng có tên là

django-admin startproject django_auth
9 và thêm tệp
cd Django_Login
python -m venv my_env
00

Thêm đoạn mã sau vào tệp

cd Django_Login
python -m venv my_env
00

Ở đây chúng tôi thêm một

cd Django_Login
python -m venv my_env
02 vào biểu mẫu của chúng tôi. Django sử dụng mã thông báo CSRF để bảo vệ biểu mẫu khỏi người dùng độc hại. Nó thực hiện điều này bằng cách thêm một mã thông báo bí mật bên trong phương thức POST khi biểu mẫu được hiển thị.
cd Django_Login
python -m venv my_env
03 hiển thị biểu mẫu dưới dạng một loạt các thẻ
cd Django_Login
python -m venv my_env
04, với mỗi thẻ
cd Django_Login
python -m venv my_env
04 chứa một trường

Bây giờ, bây giờ bạn có thể đăng nhập. Nếu bạn điều hướng đến http. //127. 0. 0. 1. 8000/accounts/login/, bạn sẽ thấy trang sau

Trang đăng nhập

Form đăng nhập gồm 2 trường username và password. Khi người dùng gửi biểu mẫu đăng nhập với thông tin xác thực phù hợp, người dùng sẽ được chuyển hướng đến URL được chỉ định trong phần tiếp theo. Nếu người dùng đăng nhập không thành công, biểu mẫu đăng nhập sẽ được hiển thị lại

Hãy thử và đăng nhập bằng thông tin xác thực sai, bạn sẽ thấy các lỗi bên dưới

Để cung cấp trải nghiệm người dùng liền mạch, chúng tôi cần chuyển hướng người dùng đến trang chủ sau khi đăng nhập thành công. Để làm điều đó, hãy thêm phần sau vào

cd Django_Login
python -m venv my_env
5

django-admin startproject django_auth
5

Sau khi đăng nhập thành công. , bạn sẽ thấy trang chào mừng sau đây

Trang chủ

Tạo một trang đăng xuất

Để đăng xuất người dùng, chúng tôi sẽ thêm một liên kết sẽ đăng xuất người dùng nếu họ nhấp vào liên kết đó. Chúng tôi cũng sẽ thêm một URL chuyển hướng vào

cd Django_Login
python -m venv my_env
5, URL này sẽ chuyển hướng người dùng trở lại trang chủ sau khi họ đăng xuất. Mở tệp
cd Django_Login
python -m venv my_env
5 và thêm dòng mã sau

cd Django_Login
python -m venv my_env
0

Mở

source my_env/bin/activatepip install django
5 và cập nhật nó như hình bên dưới

Ở đây chúng tôi kiểm tra xem người dùng có được xác thực hay không và hiển thị liên kết đăng xuất nếu Đúng và nếu Sai, chúng tôi sẽ hiển thị liên kết đăng nhập

Tạo một trang đăng ký người dùng

Cho đến nay, chúng tôi đã dựa vào siêu người dùng để thực hiện các chức năng đăng nhập và đăng xuất. Bây giờ chúng tôi có thể đăng nhập và đăng xuất thành công. Hãy xem cách người dùng có thể tự đăng ký mà không cần phải sử dụng quản trị viên Django

Cách dễ nhất để thực hiện việc này là sử dụng chế độ xem dựa trên lớp

cd Django_Login
python -m venv my_env
10 và
cd Django_Login
python -m venv my_env
11 mà Django cung cấp.
cd Django_Login
python -m venv my_env
10 là một ModelForm để tạo người dùng mới và nó tạo ra các trường cần thiết tôi. e. ,
cd Django_Login
python -m venv my_env
13 và
cd Django_Login
python -m venv my_env
14

Mở

cd Django_Login
python -m venv my_env
15 và thêm lớp xem
cd Django_Login
python -m venv my_env
16

Tiếp theo, tạo trang

cd Django_Login
python -m venv my_env
17 và thêm vào như sau

Cuối cùng, thêm chế độ xem vào

cd Django_Login
python -m venv my_env
8. Hãy nhớ gọi
cd Django_Login
python -m venv my_env
19 vì đây là chế độ xem dựa trên lớp

Trang đăng ký bây giờ trông như thế này

Trang đăng ký

Sau khi đăng ký thành công, người dùng mới sẽ được chuyển hướng đến trang đăng nhập

Dọn dẹp

Bây giờ, hãy dọn dẹp để đảm bảo rằng nếu người dùng đã đăng nhập, họ sẽ thấy nút đăng xuất và liên kết Trang chủ. Mở

source my_env/bin/activatepip install django
5 và thêm logic sau

Phần kết luận

Django cung cấp một cách tích hợp và dễ dàng hơn để đăng nhập và xác thực người dùng. Bạn cũng có thể sử dụng

cd Django_Login
python -m venv my_env
10 do Django cung cấp để tạo người dùng mới. Tôi hy vọng hướng dẫn này sẽ giúp bạn bắt đầu thiết kế hệ thống đăng nhập và đăng ký của riêng mình trong Django. Mã nguồn đầy đủ có thể được tìm thấy ở đây

Thêm nội dung tại PlainEnglish. io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Theo dõi chúng tôi trên Twitter, LinkedIn, YouTube và Discord

Làm cách nào để tạo hệ thống đăng nhập bằng Python bằng tệp văn bản?

name = input["Vui lòng nhập tên của bạn. "] age = input["Bây giờ vui lòng nhập tuổi của bạn. "] tên người dùng = tên [0. 3] + age print["Tên người dùng của bạn đã được tạo và là", tên người dùng, ". "] password = input["Bây giờ hãy tạo một mật khẩu. "] file = open["Đăng nhập

Đăng ký và đăng nhập bằng xử lý tệp Python là gì?

Đăng nhập và đăng ký Python là mô-đun được phát triển để cung cấp xác thực người dùng cơ bản trong Python . Đây là một cấu trúc rất đơn giản vì lý do các nhà phát triển khác có thể truy cập nội dung của các tệp nguồn và xem xung quanh để tìm hiểu cách cấu trúc các mô-đun hoặc dự án của riêng họ.

Chủ Đề