我的数据库设置如下:
MediaPath DateCreated Message Type
/home/1/1.jpg 21.09.2017 jpeg
/home/2/2.jpg .... .... ....
如何设置Flask代码以从MediaPath列预览图像,而不将其上传到/ static /文件夹? 这是通常的flask-admin代码模板:
class ImageView(sqla.ModelView):
def _list_thumbnail(view, context, model, name):
if not model.path:
return ''
return Markup('<img src="%s">' % url_for('static',
filename=form.thumbgen_filename(model.path)))
column_formatters = {
'path': _list_thumbnail
}
form_extra_fields = {
'path': form.ImageUploadField('Image',
base_path=file_path,
thumbnail_size=(100, 100, True))
}
答案 0 :(得分:0)
MeidaPath列中文件的路径是否是其绝对路径?
确保由form.thumbgen_filename(model.path)返回的路径是文件的绝对路径,您可以执行以下操作:
代替:
return Markup('<img src="%s">' % url_for('static',
filename=form.thumbgen_filename(model.path)))
使用:
return Markup('<img src="%s">' % form.thumbgen_filename(model.path))
**假设方法thumbgen_filename()
返回图像缩略图的绝对路径(您尚未发布该方法的代码,所以我假设这是该方法返回的内容)**
使用url_for('static', filename='some-path')
时,它会生成URL,该URL包括静态路径和静态文件夹中的文件,具体取决于您为url_for的filename参数提供的值。如果要使用其绝对路径加载文件,只需提供其绝对路径而不使用url_for()