планирование в базе данных - PullRequest
0 голосов
/ 08 ноября 2019

Я пытаюсь заставить функцию будильника работать во Flask, основная идея состоит в том, чтобы функция добавила задачу в модуль планирования, чтобы он работал в фоновом режиме и в конце концов печатал сообщение. Однако, когда я отправляю форму, страница просто пытается бесконечно загрузить новую задачу, пока не истечет время. Я предполагаю, что это связано с тем, куда я вставляю функцию, но я не совсем уверен, где.


def alarm():
    now = time.time()
    date_time = request.form['alarm']
    date_format = '%Y-%m-%dT%H:%M'
    alarm_for = int(time.mktime(time.strptime(date_time,date_format)))
    run_for = int(alarm_for) - int(now)
    s.enter(run_for,1,alarm_msg)
    while True:
        s.run(blocking=False)

@app.route('/',methods=['POST','GET'])      #adding two methods posting and getting
def index():
    if request.method == 'POST':    #submitting form
        task_content = request.form['content'] #create new task from user input
        alarm_content = request.form['alarm']
        alarm_tmp = alarm_content.replace('T', '-').replace(':', '-').split('-') #converting databse to python, help from stack-overflow
        alarm_tmp = [int(v) for v in alarm_tmp]
        alarm_datetime = datetime(*alarm_tmp)
        new_task = Table(content=task_content,alarm=alarm_datetime) #have the contents = input
        alarm()

        try:
            db.session.add(new_task)    #add to database
            db.session.commit()
            return redirect('/') #redirect to input page

        except:
            return 'There was an error'
    else:
        tasks = Table.query.order_by(Table.date_created).all() #showing all contents on site
        return render_template('index.html',tasks=tasks)    #user viewing the page
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...