sql >> Databáze >  >> RDS >> Mysql

flask-login:nechápu, jak to funguje

Flask-login ve skutečnosti nemá uživatelský backend, pouze obsluhuje mechanismy relace, které vám pomohou přihlásit a odhlásit uživatele. Musíte mu říct (způsobem zdobení), co představuje uživatele, a je také na vás, abyste zjistili, jak zjistit, zda je uživatel „aktivní“ nebo ne (protože „aktivní“ může v různých aplikacích znamenat různé věci ).

Měli byste si přečíst dokumentaci a ujistěte se, co dělá a nedělá . Zde se budu soustředit pouze na propojení s backendem db.

Chcete-li začít, definujte objekt uživatele; který představuje vlastnosti pro vaše uživatele. Tento objekt se pak může dotazovat na databáze nebo LDAP nebo cokoli jiného a je to hák, který spojuje přihlašovací mechanismus s vaším databázovým backendem.

Budu používat příklad přihlášení skript pro tento účel.

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

Jakmile vytvoříte objekt uživatele, musíte napsat metodu, která načte uživatele (v podstatě vytvoří instanci User třídy shora). Tato metoda se volá s ID uživatele.

@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)

Jakmile provedete tyto kroky, způsob přihlášení provede toto:

  1. Zkontroluje, zda se uživatelské jméno a heslo shodují (s vaší databází) – tento kód musíte napsat sami.

  2. Pokud byla autentizace úspěšná, měli byste předat instanci uživatele do login_user()



  1. Lze MySQL bez problémů nahradit MariaDB nebo je v tomto případě potřeba něco změnit?

  2. Jak získat maximální a minimální hodnoty z tabulky pomocí agregační funkce - SQL Server / TSQL výukový program, část 129

  3. Databázové modely pro elektronický obchod Část 1:Newsletter

  4. asp.net / MySQL:Přístup odepřen uživateli ''@'localhost' (s použitím hesla:NE)