2016-07-16 4 views
-1

私はPythonとFlaskが初めてです。PythonとFlaskを使ってlocalhostを使って静的フォルダからimgパスを送る方法は?

私は画像をstaticフォルダに保存しています。ユーザーに画像を表示できるように、画像パスをjsonレスポンスとして送信する必要があります。私はos.path.abspath()を試しましたが、それは私に完全なパスを与えていますが、ブラウザのlocalhostでそのパスを使用してもイメージにアクセスできません。このソリューションは、モバイルアプリでも使用できるはずです。

答えて

1

自分で見たい場合は、ホスト名またはローカルホストと組み合わせてurl_forを使用します。例えば

"localhost"+url_for('static', filename='image.png') 

The Flask quickstart quideから:

あなたはなurl_for()関数を使用することができ、特定の機能にURLを構築します。関数の名前を第1引数として受け取り、それぞれがURLルールの変数部分に対応する多数のキーワード引数を受け取ります。

についてstatic files

静的ファイル

動的なWebアプリケーションでも静的ファイルを必要としています。それは通常、CSSとJavaScriptファイルがどこから来るのかです。理想的には、あなたのWebサーバはあなたのためにそれらを提供するように設定されていますが、開発中にFlaskもそれを行うことができます。パッケージ内またはモジュールの横に静的という名前のフォルダを作成するだけで、アプリケーション上で静的に使用できるようになります。

特別な「静的」エンドポイント名を使用、静的ファイルのURLを生成するには、次のファイルが静的としてファイルシステムに格納されなければなら

なurl_for(「静的」、ファイル名=「のstyle.css」) を/style.css。

あなたは、外部ネットワークへのオープンな静的IPとポートを持っている場合は、あなたも他の人にあなたのページが表示されるようにしようとしている場合は、あなたのホスト名として0.0.0.0を使用することを忘れないでください。 Flaskのドキュメントにあるように、別のWebサーバーを使用することもできます。

+0

ありがとうございます。私の画像は静的/アップロードフォルダにあり、url_for( 'static/upload'、filename = 'image.png')のように与えるとurl_for()はエラーを投げています – user3568303

+0

これはファイル名が'upload/image.png ' – davidism

関連する問題