Why can't I change the host and port that my Flask app runs on?

前端 未结 5 526
自闭症患者
自闭症患者 2020-11-30 08:32

I want to change the host and port that my app runs on. I set host and port in app.run, but the flask run command still r

相关标签:
5条回答
  • 2020-11-30 08:47

    When you run the application server using the flask run command, the __name__ of the module is not "__main__". So the if block in your code is not executed -- hence the server is not getting bound to 0.0.0.0, as you expect.

    For using this command, you can bind a custom host using the --host flag.

    flask run --host=0.0.0.0
    

    Source

    0 讨论(0)
  • 2020-11-30 08:53

    The flask command is separate from the flask.run method. It doesn't see the app or its configuration. To change the host and port, pass them as options to the command.

    flask run -h localhost -p 3000
    

    Pass --help for the full list of options.

    Setting the SERVER_NAME config will not affect the command either, as the command can't see the app's config.


    Never expose the dev server to the outside (such as binding to 0.0.0.0). Use a production WSGI server such as uWSGI or Gunicorn.

    gunicorn -w 2 -b 0.0.0.0:3000 myapp:app
    
    0 讨论(0)
  • 2020-11-30 08:54
    from flask import Flask
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
        return "Hello World!"
    
    if __name__ == '__main__':
        app.run(host="localhost", port=8000, debug=True)
    

    Configure host and port like this in the script and run it with

    python app.py
    
    0 讨论(0)
  • 2020-11-30 08:59

    You also can use it:

    if __name__ == "__main__":
        app.run(host='127.0.0.1', port=5002)
    

    and then in the console use it

    set FLASK_ENV=development
    python app.py
    
    0 讨论(0)
  • 2020-11-30 09:00

    You can also use the environment variable FLASK_RUN_PORT, for instance:

    export FLASK_RUN_PORT=8000
    flask run
     * Running on http://127.0.0.1:8000/
    

    Source: The Flask docs.

    0 讨论(0)
提交回复
热议问题