What does "app.run(host='0.0.0.0') " mean in Flask

125,829

To answer to your second question. You can just hit the IP address of the machine that your flask app is running, e.g. 192.168.1.100 in a browser on different machine on the same network and you are there. Though, you will not be able to access it if you are on a different network. Firewalls or VLans can cause you problems with reaching your application. If that computer has a public IP, then you can hit that IP from anywhere on the planet and you will be able to reach the app. Usually this might impose some configuration, since most of the public servers are behind some sort of router or firewall.

Share:
125,829
Admin
Author by

Admin

Updated on April 27, 2020

Comments

  • Admin
    Admin about 4 years

    I am reading the Flask documentation. I was told that with app.run(host='0.0.0.0'), I could make the server publicly available.

    What does it mean ? How can I visit the server in another computer (just localhost:5000 in my own computer) ?

  • Admin
    Admin almost 9 years
    But I cannot visit on another machine...
  • Admin
    Admin almost 9 years
    I have closed the firewall. My external IP address is 115.XXX.XXX.XXX , I visited 115.XXX.XXX.XXX:5000 on another computer. It didn't work.
  • ipinak
    ipinak almost 9 years
    Setup nginx (or some other web server) and connect your internal IP e.g. 192.168.1.100 to the web server. For nginx check here: nginx.org/en/docs/http/ngx_http_upstream_module.html. Let me know if you get stack.
  • variable
    variable about 4 years
    By any chance do you know why setting it to 0.0.0.0 allows different machine to access the website? what exactly is it that is special about this 0.0.0.0 ?
  • loneboat
    loneboat almost 4 years
    @variable: That arg tells Flask which IP address(es) to listen on. If I have a server with multiple IP addresses, I might only want the app to bind to (and listen for requests on) one of those. I believe 0.0.0.0 is just a placeholder value to say "This isn't actually a real IP address I'm passing - just listen on ANY IP addresses on this host". The 0.0.0.0 terminology probably harkens back to a netmask setting of the same, which means similarly , "all ip addresses" (that's just a guess on my part though). See flask.palletsprojects.com/en/1.1.x/api/…