Flask 重定向后自动刷新页面
给自己的网站想做一个更换头像的功能,目前主体思路是这样的
1:上传的图片,放在static文件夹内,以用户名来建文件夹,并以用户名来保存图片
比如,用户名是mike,那我以/static/flask_upload/mike/mike.jpg 为形式,保存图片
当然,图片后缀名我在views里面会进行提取,以便最后保存时候用
每次用户重新上传头像时候,先整个删除mike文件夹,包括里面的图片
再重新保存
2:而上面这个URL,我存放在用户的数据库模型内,可以在渲染页面调用
目前碰到一个问题,用户上传图片以后,图片在文件系统内是更新了
但是页面上不更新,哪怕你重新登录账号也没用
只有你手动刷新页面才会把头像更新掉
感觉是页面上的头像URL还是指向旧的图片,不知道里面的原理是什么
请有经验的筒子指教一下,谢谢。
问题1:现在不知道是否是靠flask和数据库能实现?还是需要借助javascript的方法来操作?
问题2:是否可以在重定向的同时,或者之后,来进行页面的刷新,以保证用户在重定向之后可以马上看到更新后的头像?
路由函数是这样的
@main.route('/upload_file/',methods=['GET','POST'])
def upload_file(username):
form = UploadForm()
user = User.query.filter_by(username = username).first()
if form.validate_on_submit():
ext=form.upload.data.filename.split('.')[-1]
filename = '\\'+username+'\\'+username+'.'+ext
if ext:
shutil.rmtree(current_app.config['UPLOADED_TEST_DEST']+'\\'+username)
icon.save(form.upload.data , folder = current_app.config['UPLOADED_TEST_DEST']+'\\'+username+'\\', name = username+'.'+ext)
url=current_app.config['UPLOADED_FILES_URL']+'\\'+username+'\\'+username+'.'+ext
user.update_avatar(url)
return redirect(url_for('.user',username = username, user = user))
return render_template('upload_file.html',form=form)
user页面的渲染代码是这样的,其中user.avatar就是用户在数据库里面所保存的图片URL位置
{% if user.avatar %}
{% else %}
{% endif %}
这里可以看到,文件系统内的图片已经更新了,但是我重定向到user页面之后,头像还是没变
相关阅读:
vue v-module绑定输入框 在IOS中会出现无法获取输入框中的值。
react img src={require(“图片路径”)} 打包的时候报错 有遇到这情况的没?
mobiscroll关于treelist的使用问题
如何让动画按顺序执行?
求推荐关于php插件开发的资源,例如我这个Alipay采用的mvc思想写的一个插件
写的js文件不运行
为什么从Service中开启Activity有时会有延迟?
为啥$(this)不能作为形参/实参呢
一个有关react的问题,困扰很久了
能形象的解释下SDK与API的联系与差异么?
不使用npm安装simditor而直接引用相关的js文件,那么可以使用其功能吗?
关于js的ajax问题
如何给除了主键外的字段设置自增?
java的for循环中的事务问题
七牛云存储视频收费问题
短网址的生成原理是什么?
overflow:scroll; 在苹果电脑自带的浏览器中失效?
webpack + react 运行是报错 求解
PHP登录接口
HashMap算不算GCRoot?