flaskでファイルが表示できない
解決したいこと
flaskを使ってweb画面を表示させたい
発生している問題・エラー
自分で試したこと
ネットで調べていろんなことをやりましたがどうしてもよくわかりません。
初心者のためのFlaskアプリ開発② FlaskでHelloWorldアプリをつくる
を参照に進めましたが、エラーになってしまったことで、最後のアドレスが表示されません。
どなたかご教授お願いします。
flaskを使ってweb画面を表示させたい
ネットで調べていろんなことをやりましたがどうしてもよくわかりません。
初心者のためのFlaskアプリ開発② FlaskでHelloWorldアプリをつくる
を参照に進めましたが、エラーになってしまったことで、最後のアドレスが表示されません。
どなたかご教授お願いします。
hello.py
のあるディレクトリはどこですか?
以下のようにapp.route
にはhello.pyのあるディレクトリを指定してあげる必要がありそうです。
@app.route(hello.pyのあるディレクトリ)
これ以上は詳細がわからないのであまりお役に立てなさそうです。
おせっかいかもしれませんが、百歩譲ってコードはリンク先のものを見ればよいとしても、エラーメッセージはそのまま記載したほうが良いでしょう。
リンクにおそらく全角スペースが入っているため、存在しないページに飛んでしまいます。
markdownのリンクは以下のようにするとどんなページなのか分かりやすくなります。
[初心者のためのFlaskアプリ開発② FlaskでHelloWorldアプリをつくる](https://yukituna.com/841/)
初心者のためのFlaskアプリ開発② FlaskでHelloWorldアプリをつくる
併せて以下も参照するとよいでしょう。
回答ありがとうございます。質問の文章がわかりにくくてすみません。エラーの画像を更新しておきました。
質問の修正ありがとうございます。
初めて利用するサービスの勝手はわかりにくいですよね...
エラーについて話す前に一つ訂正があります。
@app.ruote('hello.pyのあるディレクトリ')
と言いましたが、@app.route()
は、()
内の場所にアクセスされたときに呼び出す処理につけるアノテーションだったようです。
したがって、ローカルのディレクトリ構造を示すものではなかったです。
申し訳ありませんでした...
以下のコードで動くことを確認しました。
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__' :
app.run()
さて、エラーについてですが、環境変数の問題だと思われます。
質問の画像を見るにreon
ディレクトリ下にhello.py
が存在していますが、環境変数の設定(set FLASK_APP=hello.py
)はryuno
ディレクトリで行っています。これでは、flaskもといpythonはryuno
直下のhello.py
を探してしまい、reon
直下のhello.py
にたどり着けないです。
したがって、以下のようにhello.py
までのパスも含めて環境変数を設定するか、reon
ディレクトリまで移動(cd
)して環境変数を設定すればこの問題は解決されると思います。
方法1
(flaskenv) C:\Users\ryuno> set FLASK_APP=C:\Users\ryuno\ ---- \reon\hello.py
方法2
(flaskenv) C:\Users\ryuno\ ---- \reon> set FLASK_APP=hello.py
複数のサイトを参照しながら勉強するのがお勧めなので、補足としてFlaskの入門もご紹介しときます。
@upskill
Questioner