执行Python代码时自动打开浏览器

qgelzfjb  于 2023-03-21  发布在  Python
关注(0)|答案(3)|浏览(176)

我正在用Python/Flask实现一个GUI。Flask的设计方式是,本地主机沿着端口号必须“手动”打开。
有没有一种方法可以自动化它,以便在运行代码时,浏览器(本地主机)自动打开?
我尝试使用webbrowser包,但它打开网页后,会话被杀死。
我也看了下面的帖子,但它们超过了我的头。
Shell script opening flask powered webpage opens two windows
python webbrowser.open(url)
根据用户输入呈现html页时出现问题。
先谢了。

import webbrowser

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

if __name__ == "__main__":
    webbrowser.open_new('http://127.0.0.1:2000/')
    app.run(port=2000)
nzkunb0c

nzkunb0c1#

使用计时器启动新线程以打开Web浏览器。

import webbrowser
from threading import Timer

from flask import Flask
app = Flask(__name__)

@app.route("/")
def hello():
    return "Hello World!"

def open_browser():
      webbrowser.open_new("http://127.0.0.1:5000")

if __name__ == "__main__":
      Timer(1, open_browser).start()
      app.run(port=2000)
exdqitrt

exdqitrt2#

我建议进行以下改进,以允许在调试模式下加载浏览器:

  • this answer启发,仅在第一次运行时加载浏览器...*
def main():
    
    # The reloader has not yet run - open the browser
    if not os.environ.get("WERKZEUG_RUN_MAIN"):
        webbrowser.open_new('http://127.0.0.1:2000/')

    # Otherwise, continue as normal
    app.run(host="127.0.0.1", port=2000)

if __name__ == '__main__':
    main()

https://stackoverflow.com/a/9476701/10521959

kjthegm6

kjthegm63#

它打开浏览器的两个标签。此外,您在端口2000上运行应用程序,同时在端口5000上打开浏览器。

相关问题