sql >> Database >  >> RDS >> Mysql

flask-login:kan niet begrijpen hoe het werkt

Flask-login heeft niet echt een gebruikersbackend, het behandelt alleen de sessiemachines om u te helpen bij het inloggen en uitloggen van gebruikers. Je moet het vertellen (door decoratiemethoden), wat een gebruiker vertegenwoordigt en het is ook aan jou om erachter te komen hoe je kunt weten of een gebruiker "actief" is of niet (aangezien "actief" verschillende dingen kan betekenen in verschillende toepassingen ).

Lees de documentatie en wees zeker wat het doet en niet doet . Hier ga ik me alleen concentreren op de bedrading met de db-backend.

Definieer om te beginnen een gebruikersobject; die eigenschappen voor uw gebruikers vertegenwoordigt. Dit object kan dan databases opvragen, of LDAP, of wat dan ook, en het is de hook die het inlogmechanisme verbindt met uw database-backend.

Ik zal het inlogvoorbeeld gebruiken script voor dit doel.

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

Nadat u het gebruikersobject hebt gemaakt, moet u een methode schrijven die de gebruiker laadt (in feite maakt u een instantie van de User klasse van bovenaf). Deze methode wordt aangeroepen met de gebruikers-ID.

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

Zodra u deze stappen heeft doorlopen, doet uw inlogmethode dit:

  1. Controleert of de gebruikersnaam en het wachtwoord overeenkomen (in uw database) - u moet deze code zelf schrijven.

  2. Als de authenticatie is gelukt, moet u een instantie van de gebruiker doorgeven aan login_user()



  1. Hoe de volledige DDL van een Oracle-schema (scriptable) te genereren?

  2. hoe een tekenreeksdatum naar datumnotatie te converteren in oracle10g

  3. Converteer deze vraag naar welsprekend

  4. Java:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:kon geen verbinding maken met databaseserver