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.')