执行 Python 代码时自动打开浏览器
Open browser automatically when Python code is executed
我正在 Python/Flask 中实现 GUI。
flask 的设计方式,必须打开本地主机和端口号 "manually"。
有没有办法让它自动化,以便根据 运行 代码,自动打开浏览器(本地主机)?
我尝试使用 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)
使用计时器启动新线程以打开网络浏览器。
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)
我建议进行以下改进以允许在调试模式下加载浏览器:
受 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()
我正在 Python/Flask 中实现 GUI。 flask 的设计方式,必须打开本地主机和端口号 "manually"。
有没有办法让它自动化,以便根据 运行 代码,自动打开浏览器(本地主机)?
我尝试使用 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)
使用计时器启动新线程以打开网络浏览器。
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)
我建议进行以下改进以允许在调试模式下加载浏览器:
受 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()