仕組みを理解しようとしてFlask-Login
います。
ドキュメントで、事前に入力されたユーザーのリストを使用していることがわかります。データベースに保存されたユーザー リストを操作したい。
Flask-Login
ただし、このモジュールでいくつかのことがわかりません。
@login_manager.user_loader
def load_user(userid):
#print 'this is executed',userid
return user(userid, 'asdf')
このコードはすべてのリクエストで呼び出されますか? これは、ユーザー オブジェクトのすべての詳細を読み込むために使用されますか?
今のところ、私はこのコードを持っています:
@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')
/make-login にアクセスしたらログインしたい。
私のユーザークラス:
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
また、認証/登録用に別の 2 つの関数を作成しました。
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
Flask-Login
これを MySQL で機能させる方法がわかりません。また、ユーザーがログインしているかどうかもわかりません。ユーザー ID またはユーザー名を取得するにはどうすればよいですか?
これがどのように機能するかを誰かがいくつかの行で説明できますFlask-Login
か?