簡體   English   中英

如何在Flask中將base64圖像存儲到用戶會話中

[英]How store a base64 image into user session in Flask

美好的一天。 我從Python中的Flask開始。 一切正常,但是我在會議上遇到了問題。 這個想法是在用戶登錄后將用戶的base64頭像存儲到他的會話中。然后,在布局中,通過<img src="data:image/png;base64,{{session.user.photo}}" />

問題出在我登錄時,將base64放入會話中並重定向到/home /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))

燒瓶只接受會話中的小數據? 謝謝。

很抱歉,您不應在會議中存儲較大的圖像。

實現它的一個好方法是存儲唯一的圖像ID,並使用該唯一ID調用url。 像這樣:

<img src = "//myview?id=513654534343543543" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM