簡體   English   中英

Flask-Admin | 如何修復到圖像的路線

[英]Flask-Admin | How to fix route to the image

根據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中進行操作。

我找到了一種解決方案,可以在沒有ImageUploadField的情況下將圖像傳遞到Flask-admin中的編輯視圖。 解決方案很簡單,我所需要的只是從數據庫傳遞一個圖像ID,並在Jinja模板中使用它。

class ImageView(ModelView):
edit_template = 'image_edit.html'

@expose('/edit/', methods=['GET', 'POST'])
def edit_view(self):
    id = request.args.get('id')
    self._template_args['image'] = db.session.query(Image.path).filter(Image.id == id).first()[0]
    return super(ImageView, self).edit_view()

和HTML模板:

{% extends "admin/model/edit.html" %}
{% block body %}
  <img src=/static/images/{{ image }}/>
  {{ super() }}
{% endblock %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM