繁体   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