我正在编写一个Flask应用程序,以便在本地计算机上运行并执行某些操作。我希望我的flask应用程序在完成初始化后自动打开Web浏览器。问题是,当我将它们打包在一起时,有时Web驱动程序的加载速度比Flask APP能够初始化的速度快得多。
我尝试了时间延迟和线程,但是在大多数情况下,我一直得到不一致的结果。我已经尝试过使用Flask的@before_first_request,但这仍然是从浏览器发出请求之后。
if __name__ == '__main__':
port = 5000 + random.randint(0, 999)
url = "http://127.0.0.1:{0}".format(port)
options = webdriver.ChromeOptions()
# options.add_argument("--start-maximized")
options.add_argument("--kiosk")
options.add_argument("disable-infobars")
browser = webdriver.Chrome(chrome_options=options)
# threading.Timer(5, lambda: browser.get(url)).start()
browser.get(url)
app.run(port=port, debug=Flase)
我希望实际的网络驱动程序在Flask完成初始化后即可打开。我不能将它放在app.run之后,因为它会启动烧瓶“循环”,并且不会执行。 Flask完全初始化但尚未接受任何请求后,是否可以运行任何功能?
谢谢!
答案 0 :(得分:0)
一旦Flask完全初始化但尚未接受任何请求,是否有任何要运行的功能?
尝试为before_first_request
注册一个回调:
@app.before_first_request
def run_browser():
# ...
https://flask.palletsprojects.com/en/1.0.x/api/#flask.Flask.before_first_request