【发布时间】:2017-04-14 02:54:55
【问题描述】:
我在显示上传文件夹中的照片时遇到问题。 我有一个表单,用户可以在其中输入标题、描述并上传图片,然后将其插入数据库。我可以显示我刚刚在模板上添加的所有数据,除了图像,只有一个 X 而不是图像。
ps。图像已成功下载到上传文件夹,并且文件名已成功添加到数据库。它只是没有显示在页面上。
app.py
#route to content page
@app.route('/dashboard', methods = ['GET', 'POST'])
def dashboard():
error = None
form = MessageForm()
if form.validate_on_submit():
filename = secure_filename(form.photo.data.filename)
form.photo.data.save(os.path.join('uploads/', filename))
new_message = BlogPost(
form.title.data,
form.description.data,
form.photo.data.filename,
current_user.id
)
db.session.add(new_message)
db.session.commit()
flash("Your recipe was successfully posted. Thanks!")
posts = db.session.query(BlogPost).all()
return render_template('dashboard.html', posts = posts, form = form,
error = error)
else:
posts = db.session.query(BlogPost).all()
return render_template('dashboard.html', posts = posts, form = form,
error = error)
模板
{% for post in posts %}
<div class="col-xs-12 col-sm-6 col-md-4 col-lg-5 masonry-item">
<div class="box-masonry"><a href="#" title="" class="box-masonry
image with-hover-overlay">
<img src="uploads/{{ post.photo }}" alt="" class="img-responsive"
</a>
<div class="box-masonry-hover-text-header">
<h4> <a href="#">{{ post.title }}</a></h4>
<div class="box-masonry-desription">
<p>{{ post.description }}</p>
<p><strong>{{ post.author.name }}</strong></p>
</div>
</div>
</div>
</div>
{% endfor %}
【问题讨论】:
-
当我手动指向它时工作正常,但显然我希望它是动态的......
-
觉得需要相对路径,试试
/uploads/ -
已经试过了,没用。
-
它是否正确放置在静态文件夹中?试试
{{ url_for('static', filename ='uploads\'+post.photo) }} -
它有效......耶稣。我之前试过了,还是不行,不明白。非常感谢朋友!
标签: python flask sqlite sqlalchemy jinja2