跟着flask web开发这本书学习,我用flask实现了一个用户上传图片设置为头像的功能
具体实现方式为:
用Form表单获得文件--->存储文件到项目指定文件夹(文件用用户ID命名)--->把储存文的件路径提交到数据库--->最后在网页模板中按照用户ID提取文件
这是视图函数中的代码
file = form.file.data
file.save('app/static/images/%s.jpg' %current_user.id)
current_user.image = 'images/%s.jpg' %current_user.id
db.session.add(current_user)
这是模板中的代码
<img class="img-rounded profile-thumbnail" src="{{ url_for('static', filename=user.image) }}" width="260" height="260">
现在存在的问题是上传图片后,文件存储正常、数据库更新也正常。可是网页上显示的头像还是没有变化。然后要过一段时间才能显示新头像,为什么?
刚学编程,如果有提问不合适的地方,请谅解,谢谢大家了!
应该是静态资源被浏览器缓存的原因,试下下面几个方案:
每次上传图片,用不同的名字保存和展示
在静态资源添加版本号(具体谷歌)
静止头像图片的缓存