20

フラスコで、静的フォルダにない画像を提供するにはどうすればよいですか?

現在、ユーザーがアップロードした写真をフラスコフォルダー外のディレクトリに保存しています(オンopenshift、画像は現在データフォルダーに保存されてapp-root/dataおり、フラスコファイルはにありますapp-root/repo/)。

テンプレートで、画像ファイルを提供するにはどうすればよいですか?

を使用しurl_forて、flask フォルダの外にあるこれらの画像ファイルを参照するにはどうすればよいですか?

- data/
 |
  -- uploads/
- repo/
 |
  -- app/
    |
     -- __init__.py

ご覧のとおり、flask app フォルダーの外側に data フォルダーがあります。フラスコアプリディレクトリから(1レベル上)に保存されているファイルへのリンクを生成するにはどうすればよいdata/uploadsですか?

4

1 に答える 1

39

必要なことを行うsend_from_directory関数があります。メディア ファイルが配置されているパスを指定してMEDIA_FOLDERという定数を宣言し、次のように関数を呼び出すだけです。

from config import MEDIA_FOLDER

@app.route('/uploads/<path:filename>')
def download_file(filename):
    return send_from_directory(MEDIA_FOLDER, filename, as_attachment=True)

次に、それを呼び出すには、次のようにします。

{{ url_for('download_file', filename='dogs.jpg') }}

詳細については、こちらをご覧ください。

于 2014-11-17T11:58:37.843 に答える