【问题标题】:python flask...My computer couldn't displaypython flask...我的电脑无法显示
【发布时间】:2015-03-01 22:18:52
【问题描述】:

这是来自烧瓶主页的代码。

 from flask import Flask
 app = Flask(__name__)

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

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

当我运行代码然后输入http://0.0.0.0:5000/ 我的电脑无法显示... 有什么问题?

【问题讨论】:

    标签: python flask


    【解决方案1】:

    1) 这不是烧瓶主页上的代码。

    2) 两次调用run() 将不起作用。如果第一个run() 将完成执行并到达第二个run(),那么第二个run( 不会完成执行并到达程序末尾并终止吗?

    app.run()defined 像这样:

    run(host=None, port=None, debug=None, **options)
    
    Changed in version 0.10: The default port is now picked from the SERVER_NAME variable.
    
    Parameters: 
    host – the hostname to listen on. Defaults to '127.0.0.1'. 
           Set this to '0.0.0.0' to have the server available externally as well. 
    
    port – the port of the webserver. Defaults to 5000 or the port defined in the SERVER_NAME config variable if present.
    debug – if given, enable or disable debug mode. See debug.
    options – the options to be forwarded to the underlying Werkzeug server. See werkzeug.serving.run_simple() for more information.
    

    您可以在一次app.run() 调用中设置所有这些参数。

    3) 来自flask docs

    如果您[使用app.run()] 运行服务器,您会注意到 服务器只能从您自己的计算机访问,不能从任何其他计算机访问 在网络中。这是默认设置,因为在调试模式下,用户 的应用程序可以在您的计算机上执行任意 Python 代码。

    如果您已禁用调试或信任网络上的用户,您可以 只需更改 run() 方法看起来像这样:

    app.run(host='0.0.0.0')
    

    这会告诉您的操作系统侦听所有公共 IP。

    如果您尝试将主机设置为0.0.0.0,然后启动您的服务器,flask 将显示消息:

    但是,这并不意味着 0.0.0.0 是主机名(= IP 地址)。 0.0.0.0 表示服务器正在侦听端口 5000 上的任何公共主机名(= IP 地址)。url http://localhost:5000 也可以。

    底线:除非您知道自己在做什么,否则不要使用主机 0.0.0.0。

    【讨论】:

    • app.run(host='0.0.0.0', port=SERVER_NAME, debug=None)
    • 我像这样更改了我的代码并定义了 SERVER_NAME = 5000
    • @asdfghj,一些例子怎么样?如果我使用app.run(),我可以使用网址http://localhost:5000/ 或网址http://127.0.0.1:5000/ 访问该页面;但是如果我在 url 中使用我的计算机的 ip:http://123.456.12.34:5000/,我将无法检索该页面。另一方面,如果我使用app.run(host='0.0.0.0'),我可以使用上面的 all url 访问页面。
    • 我意识到这是一篇旧帖子,但由于我偶然发现它然后找到了答案,我想我会回复的。 about0.0.0.0:5000 是 DOCKER 端口 5000。要从外部 docker 访问它,通过您的 Web 浏览器,您首先需要将端口从外部映射到内部。为此,请像这样启动 docker: docker run -p 5555:5000 然后,您应该能够在映射的外部端口上打开浏览器:localhost:5555
    猜你喜欢
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 2021-12-28
    • 1970-01-01
    • 2018-06-11
    • 2017-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多