おはよう。私はPythonでFlaskを使い始めています。すべてうまくいっていますが、セッションに問題があります。アイデアは、彼がログインした後、ユーザのbase64のアバターを彼のセッションに保存することです。その後、彼のアバターへのアクセスは<img src="data:image/png;base64,{{session.user.photo}}" />
のレイアウトになります。Flaskのbase64イメージをユーザーセッションに保存する方法
問題は、ログインしてbase64をセッションに入れて/home
にリダイレクトするときに発生します。内部/home
のルート内に、私は簡単なアクセス制御を持っています。にセッションがユーザ鍵を持っていない場合は、再度ログインするようにリダイレクト。問題は、セッションを設定してホームにリダイレクトした後、セッションが/ homeで空であり、テンプレートをレンダリングしていないことです。
@root.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
if 'user' in session:
return redirect('/home')
else:
return render_template('login.html', message = None)
else:
username = request.form['username']
pwd = request.form['password']
user = User.where('username', username).where('pwd', pwd).get().first()
if(user == None):
return render_template('login.html', message = 'Usuario o contraseña incorrecta')
else:
session['user'] = {
'id': user.id,
'username': user.username,
'photo': user.photo
}
return redirect('/home')
@root.route('/home')
def home():
if 'user' in session: # THIS IS FALSE, SESSION IS EMPTY
return render_template('home.html')
else:
return redirect(url_for('root.login', message = None))
フラスコセッションのみの小さなデータを受け入れますか?ありがとう。
わかりました。テーブルにTextというイメージがあるので、一時フォルダに書き込んで、ビューから参照することができます。あなたの提案をありがとう。 Javaでは、ちょうど写真(バイト[])をセッションに入れ、JSでbase64に変換します。ありがとう兄貴 –