私はどのように理解しようとしています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')
、私は、ログインしたい
私のユーザークラス:また
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
?
+1これは非常に役に立ちました---私は公式のFlask-Loginのドキュメントをよく理解していませんでした。 – Raj
リンク先の要点は、これをテストするためにデータベースのバックエンドを設定したくない場合に特に役立ちます。https://gist.github.com/bkdinoop/6698956 – dino
@Burhan Khalid、サンプル関数では、 def login():... login_user(user)。ユーザーはどこから来たのですか? – chfw