Проблема, скорее всего, в самом начале функции getmarks
.
@app.route('/getmarks', methods=['GET', 'POST'])
def getmarks():
sems = request.args.get('sems')
sems = int(sems)
Способ получения значения sems
, скорее всего, несовместим с формой, которую вы при условии, и в результате sems
оказывается None
, что приводит к ошибке при вызове int()
.
Почему это происходит? Это связано с тем, что опубликованные данные не сохраняются в HTTP-вызовах. Тот факт, что в запросе, обработанном getdetails
, было отправлено значение поля sems
(я предполагаю, что так оно и было, даже если вы не предоставили для этого форму HTML), не означает, что то же значение будет автоматически передаваться (как значение в form
или args
) в последующие HTTP-запросы, включая тот, который обрабатывается getmarks
.
Вам необходимо встроить любые аргументы, отправленные с первого форма, которую вы хотите разместить во второй форме, внутри второй формы. Вы можете сделать это несколькими способами:
- Вы можете создать невидимое поле во второй форме с тем же именем, что и в первой форме, и установить для него начальное значение, равное значение, отправленное первым запросом. Для этого потребуется, чтобы вы обращались к этому полю через свойство
form
запроса Flask, а не через свойство args
. - Вы можете сделать значение частью цели формы как GET- аргумент стиля. Однако я бы не рекомендовал этот метод.