首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在执行Python代码时自动打开浏览器

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

Stack Overflow用户
提问于 2019-01-17 11:52:00
回答 2查看 10.4K关注 0票数 12

我正在Python/Flask中实现一个GUI。按照烧瓶的设计方式,本地主机和端口号必须“手动”打开。

是否有一种方法使其自动化,以便在运行代码时自动打开浏览器(本地主机)?

我尝试使用webbrowser包,但它在会话结束后打开网页。

我也看了下面的帖子,但它们在我的头上。

Shell script opening flask powered webpage opens two windows

python webbrowser.open(url)

当基于用户输入呈现html页面时会出现问题。

提前谢谢。

代码语言:javascript
运行
复制
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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-01-17 11:58:31

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

代码语言:javascript
运行
复制
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)
票数 34
EN

Stack Overflow用户

发布于 2020-08-02 13:52:33

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

https://stackoverflow.com/a/9476701/10521959启发,将只在第一次运行时加载浏览器.

代码语言:javascript
运行
复制
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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54235347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档