私はここでリンクを参照しました:More than one static path in local Flask instanceと、ブラウザのタブで画像ファイルを表示しようとしましたが、そうすることができませんでした。間違いを解消できません。 stored_nameは、app config定数変数: 'UPLOAD_FOLDER'で指定されたパスに格納されているファイルの物理ファイル名です。 このフォルダは静的フォルダとそのサブフォルダのパスにありません。ファイルの記憶容量を増やしたいのですが(イメージファイルでも可能です)、後でハードディスクスペースを追加することで、ストレージに静的フォルダを使用すると難しくなります。フラスコのインポートsend_from_directoryフラスコ内のカスタム静的パスapi?
@app.route('/api/v1.0/docs/<path:filename>', methods=["GET"])
def img_render(filename):
print 'Called here'
return send_from_directory(app.config['UPLOAD_FOLDER'], filename)
@app.route('/api/v1.0/docs/<int:doc_id>',methods=["GET"])
def image_rendering(doc_id):
s = select([docs]).where(docs.c.id==doc_id)
rs = conn.execute(s).fetchone()
filename = str(rs[docs.c.stored_name])
return url_for('img_render', filename=filename)
HTMLテンプレートから
:私は
コードスニペット(これは動作します)アプリケーションの初期化中に、静的なフォルダを上書きしたくない
<!DOCTYPE html>
<html>
<body>
<img src="{{url_for('img_render', filename=filename) }}" />
</body>
</html>
テンプレートはテンプレートフォルダ自体にあります。アプリケーションの起動時に元の静的フォルダを上書きすると、ブラウザに表示された画像を取得できますが、アプリケーションの静的フォルダへの参照を変更する必要がありますORイメージをアプリケーションからの静的フォルダです。私はしたくありません。それだけでブラウザ例では、画像のパスが表示されていること間違いどのようなものです:
/api/v1.0/docs/1_20160707_121214.jpg
なく画像そのもの?コードの間違いはどこですか?フラスコv .0.11、linux 2.7を使用する。
を私はまた、上記を試してみました。サムネイルは表示されますが、実際の画像は表示されません。 – user956424
'Called here 'の代わりに' img_render'関数で関数に渡されたファイル名、 'print filename'を出力します。これはイメージの予想される名前ですか? – pjcunningham
はい、ファイル名が正しく取得されました – user956424