7

Vagrant環境でFlaskを独学しようとしています。Flask はデフォルトでポート 5000 でサーバーを実行することを理解しています。私のVagrantfileには次のものがあります:

config.vm.network :forwarded_port, guest: 80, host: 8080
config.vm.network :forwarded_port, guest: 5000, host: 5000

簡単なチュートリアル Flask アプリがあります。

from flask import Flask 
app = Flask(__name__)

@app.route('/hello')
def hello_world():
    return 'Hello world!'

if __name__ == '__main__':
    app.run(debug=True)

しかしpython hello.py、Vagrant 環境で実行した後127.0.0.1:5000/hello、デスクトップの Chrome に移動すると、接続できません。

私はネットワークについて十分な知識がありません。私は何が欠けていますか?

4

6 に答える 6

12

おそらく、Flask を外部から見える URL で提供する必要があります:ドキュメントを参照してください。

于 2014-04-22T21:47:13.703 に答える
1

vagrant ボックスに curl がインストールされていますか? そうでない場合は、インストールして試してくださいcurl http://127.0.0.1:5000/hello。応答がありHello world!、コンソールに表示される場合、フラスコ側ではすべて問題ありません。仮想ボックスに戻る - ネットワーク設定を開くと、上記の内容から、NAT アドレスを使用していると思われます。その場合、ホスト アドレスを 127.0.0.1、ポート 5000 に設定し、ゲスト アドレスを空のままにしてポート 5000 を再度設定する必要があります。このような状況で vagrant について気づいたことの 1 つは、virtualhosts を使用すると最適に機能することです。ここを見てください。

于 2014-04-22T21:45:00.417 に答える
0

私は Vagrant を使用していましたが、次のコード行を Vagrantfile に追加して解決しました。

  config.vm.network "forwarded_port", guest: 5000, host: 5000, host_ip: "127.0.0.1"
于 2018-04-15T06:50:46.783 に答える