Estoy tratando de entender cómo funciona Flask-Login
.flask-login: no puedo entender cómo funciona
Veo en su documentación que usan una lista de usuarios previamente poblada. Quiero jugar con una lista de usuarios almacenados en la base de datos.
Sin embargo, no entiendo algunas cosas en este módulo Flask-Login
.
@login_manager.user_loader
def load_user(userid):
#print 'this is executed',userid
return user(userid, 'asdf')
¿Se llamará a este código en cada solicitud? Esto se usa para cargar todos los detalles de mi objeto de usuario?
Por ahora, tengo este código:
@app.route('/make-login')
def make_login():
username = 'asdf'
password = 'asdf'
user_data = authenticate(username, password)
user_obj = user(user_data[0], user_data[1])
login_user(user_obj)
return render_template('make-login.html')
Cuando acceder/maquillaje de inicio de sesión, quiero que entrar
Mi clase de usuario:.
class user(object):
def __init__(self, id, username, active=True):
self.username = username
self.id = id
#self.active = active
def is_authenticated(self):
return True
def is_active(self):
return True
def is_anonymous(self):
return False
def get_id(self):
return 5
Además, Escribí otras dos funciones para autenticar/registrar
def authenticate(username, password):
cursor = db.cursor()
password = md5.md5(password).hexdigest()
try:
query = "SELECT * FROM `users` WHERE `username` = %s AND `password` = %s"
cursor.execute(query, (username, password))
results = cursor.fetchall()
#print results[0][0]
#print "here i am"
if not results:
return False
else:
user_data = [results[0][0], results[0][1]]
return user_data
#self.authenticated = True
#self.user_id = results[0][0]
#session['username'] = results['username']
#print type(results)
except db.Error, e:
return 'There was a mysql error'
def register(username, password, email, *args):
cursor = db.cursor()
password = md5.md5(password).hexdigest()
try:
#query = "INSERT INTO `users` (`username`, `password`, `email`) VALUES ('%s', '%s', '%s')" % (username, password, email)
query = "INSERT INTO `users` (`username`, `password`, `email`) VALUES (%s, %s, %s)"
cursor.execute(query, (username, password, email))
db.commit()
return True
except db.Error, e:
print 'An error has been passed. %s' %e
db.rollback()
return False
No sé cómo hacer que este Flask-Login
funcione con MySQL. Además, no sé si el usuario ha iniciado sesión. ¿Cómo puedo obtener la identificación de usuario o el nombre de usuario?
Cualquiera me puede explicar en algunas filas cómo funciona este Flask-Login
?
+1 Esto fue súper útil --- No entendí la documentación oficial de inicio de sesión de Flask. – Raj
La esencia a la que se vincula es particularmente útil si no desea configurar necesariamente un back-end de base de datos para probar esto https://gist.github.com/bkdinoop/6698956 – dino
@Burhan Khalid, en la función de ejemplo, def login(): ... login_user (usuario). ¿De dónde viene el usuario? – chfw