Страница открывается , но Flask не запускается. Чем заменить цикл "while"?
Код должен получать данные через webhook и что-то делать на сайте. И каждый день в нужное время авторизоваться. Если так, страница открывается , но Flask не запускается.
def main():
open_page()
app.run()
Если так, наоборот.
def main():
app.run()
open_page()
Весь код:
from flask import Flask, request, abort
from selenium import webdriver
from time import sleep
import datetime
driver = webdriver.Chrome(
executable_path=r"E:\Projects\python project\webhook\chromedriver.exe")
def time_now():
return datetime.datetime.now()
url = "https://example.ru/"
def open_page():
driver.get(url=url)
while True:
if time_now().hour == 3 and time_now().minute == 00 and time_now().second == 0:
login()
sleep(1)
def login():
"some code"
def do_something(data):
"some code"
app = Flask(__name__)
@app.route('/', methods=['POST'])
def webhook():
if request.method == 'POST':
data = request.get_json()
if data['key'] == "new":
do_something(data)
return '', 200
else:
abort(403)
else:
abort(400)
def main():
open_page()
app.run()
if __name__ == "__main__":
main()
Ответы (1 шт):
Автор решения: Bor-is-luv
→ Ссылка
Верно подмечено, нужно избавиться от while в open_page. Это можно сделать, запуская open_page по расписанию. Например при помощи APScheduler https://pypi.org/project/APScheduler/, либо Celery https://pypi.org/project/celery/.