我正在Python / Flask中实现GUI。 设计烧瓶的方式中,必须“手动”打开本地主机以及端口号。
是否有一种自动化的方法,以便在运行代码时自动打开浏览器(本地主机)?
我尝试使用webbrowser软件包,但是在会话被终止后它会打开网页。
我还查看了以下帖子,但它们笼罩着我。
Shell script opening flask powered webpage opens two windows
基于用户输入呈现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)
答案 0 :(得分:5)
使用计时器启动新线程以打开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:2000/')
if __name__ == "__main__":
Timer(1, open_browser).start();
app.run(port=2000)
答案 1 :(得分:0)
我建议进行以下改进,以允许在调试模式下加载浏览器:
受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()