![](/img/trans.png)
[英]Flask - how to read request.files['image'] as 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.