【发布时间】:2017-11-08 13:09:21
【问题描述】:
根据 Flask 中的图像路径,我有一个问题。 我有一个数据库模型图像,其中包含有关图像的所有必要信息,包括路径 - '/animals/sometype/image.jpg'。
我正在使用 Flask-admin 模块,问题是在编辑模式下图像的路径错误。 这是一个代码:
class ImageView(ModelView):
edit_template = 'image_edit.html'
def _list_thumbnail(view, context, model, name):
if not model.path:
return ''
return Markup('<img src="%s">' % url_for('static', filename=('images' + model.path)))
column_formatters = {
'path': _list_thumbnail
}
form_extra_fields = {
'path': form.ImageUploadField('Image', base_path='static/images', url_relative_path='images/')
}
对于列格式化程序路径是正确的,但是对于额外的字段是错误的,导致404错误:http://127.0.0.1:5000/static//animals/birds/the_bird-wallpaper-1366x768.jpg
我该如何解决这个问题? 另外,我正在考虑将图像传递给自定义编辑模板,但我不明白如何在 Flask-Admin 中进行。
【问题讨论】:
-
图片在哪个 URL 中?它在静态文件夹中吗?您可以从任何路径访问图像吗?这就是可能有用的路径。
-
所有图片都在项目的根目录下'static/images'和'images'目录下的许多文件夹。
-
所以转到 'localhost:5000/static/images/folder/image-you-know-exists` 确实会显示图像,对吗?
-
正确!但是从 form.ImageUploadField 生成的路径返回 localhost:5000/static//animals/... 两个斜杠之间没有“images”文件夹。
-
如果在
base_path中包含斜杠会怎样?文件名(或图像路径)是否包含前导斜杠?
标签: python flask flask-admin