web-dev-qa-db-ja.com

flask)の静的フォルダにない画像にリンクするにはどうすればよいですか?

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

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

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

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

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

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

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') }}

あなたはこれについてもっと情報を持つことができます ここ

18
Leandro Poblet