Python 为什么可以';烧瓶应用程序中的图像是否正确显示?
我创建了一个用户类,如下所示:Python 为什么可以';烧瓶应用程序中的图像是否正确显示?,python,upload,flask,jinja2,image-uploading,Python,Upload,Flask,Jinja2,Image Uploading,我创建了一个用户类,如下所示: class User(UserMixin, db.Model): ### avatar = db.Column(db.String(64), default='app/static/upload/default.jpeg') 用户上传他的化身如下(上传目录为app/static/UPLOAD): 然后我检查了“上传”目录,确认img在那里;我在贝壳里得到了这个: >>> z.avatar u'C:\\Users\
class User(UserMixin, db.Model):
###
avatar = db.Column(db.String(64), default='app/static/upload/default.jpeg')
用户上传他的化身如下(上传目录为app/static/UPLOAD):
然后我检查了“上传”目录,确认img在那里;我在贝壳里得到了这个:
>>> z.avatar
u'C:\\Users\Administrator\\Desktop\\weiboLITE\\app/static/uploads\\162421.jpg'
现在我运行了服务器,发现img无法显示。我的模板如下所示:
<div class="thumbnail">
<img src="{{ user.avatar }}" alt="Avatar not found.">
</div>
所以我想知道在Jinja2模板中img应该采用哪种格式。。。?还是我错了?在别的地方?请告知。您能提供一些其他信息吗?用于呈现jinja2模板的路线的代码是什么 另外,看起来您还没有将新路径提交到数据库——您应该在将新的化身路径添加到用户对象后调用
db.session.commit()
,以确保新数据正确保存:
current_user.avatar = os.path.join(
current_app.config['UPLOAD_DIR'],
form.avatar.data.filename)
db.session.add(current_user)
db.session.commit() # Try adding this line
flash('Upload completed.')
如果您正在向jinja2模板发送一个新的用户对象,那么这很重要。当您在交互式shell中使用单个用户对象时,路由可能看起来保存正确,但当您在路由中执行新的用户时,路由将不正确。查询,并使用render\u template()
将查询对象作为上下文发送到模板
最后,您应该使用url\u for()
调用图像位置。检查此项以获取其他指导
祝你好运,我希望这会有帮助
current_user.avatar = os.path.join(
current_app.config['UPLOAD_DIR'],
form.avatar.data.filename)
db.session.add(current_user)
db.session.commit() # Try adding this line
flash('Upload completed.')