Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

flask-login:không thể hiểu nó hoạt động như thế nào

Flask-login không thực sự có chương trình phụ trợ người dùng, nó chỉ xử lý bộ máy phiên để giúp bạn đăng nhập và đăng xuất người dùng. Bạn phải cho nó biết (bằng các phương pháp trang trí), điều gì đại diện cho người dùng và bạn cũng phải tìm ra cách để biết liệu người dùng có "đang hoạt động" hay không (vì "hoạt động" có thể có nghĩa khác nhau trong các ứng dụng khác nhau ).

Bạn nên đọc tài liệu và chắc chắn những gì nó làm được và không làm . Ở đây tôi sẽ chỉ tập trung vào việc kết nối nó với chương trình phụ trợ db.

Để bắt đầu, hãy xác định một đối tượng người dùng; đại diện cho các thuộc tính cho người dùng của bạn. Đối tượng này sau đó có thể truy vấn cơ sở dữ liệu hoặc LDAP hoặc bất cứ thứ gì và nó là móc nối kết nối cơ chế đăng nhập với phần phụ trợ cơ sở dữ liệu của bạn.

Tôi sẽ sử dụng ví dụ đăng nhập tập lệnh cho mục đích này.

class User(UserMixin):
    def __init__(self, name, id, active=True):
        self.name = name
        self.id = id
        self.active = active

    def is_active(self):
        # Here you should write whatever the code is
        # that checks the database if your user is active
        return self.active

    def is_anonymous(self):
        return False

    def is_authenticated(self):
        return True

Khi bạn đã tạo đối tượng người dùng, bạn cần viết một phương thức tải người dùng (về cơ bản, tạo một phiên bản của User lớp từ khá trở lên). Phương thức này được gọi với id người dùng.

@login_manager.user_loader
def load_user(id):
     # 1. Fetch against the database a user by `id` 
     # 2. Create a new object of `User` class and return it.
     u = DBUsers.query.get(id)
    return User(u.name,u.id,u.active)

Khi bạn có các bước này, phương thức đăng nhập của bạn sẽ thực hiện điều này:

  1. Kiểm tra xem tên người dùng và mật khẩu có khớp không (với cơ sở dữ liệu của bạn) - bạn cần tự viết mã này.

  2. Nếu xác thực thành công, bạn nên chuyển một phiên bản của người dùng đến login_user()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách lưu trữ kinh độ và vĩ độ trong cơ sở dữ liệu. MySQL sẽ không đi xa hơn -99,9999999

  2. Thay đổi năm trong ngày mysql

  3. Làm cách nào để thoát dấu gạch dưới trong truy vấn chuỗi ở chế độ ngủ đông và SQL?

  4. Mã lỗi:1055 không tương thích với sql_mode =only_full_group_by

  5. Câu lệnh chèn-chọn nhiều hàng trong Mysql với last_insert_id ()