Форум программистов, компьютерный форум, киберфорум
Python: Flask
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
 Аватар для Luxmunx
2 / 2 / 2
Регистрация: 05.11.2012
Сообщений: 108

Вычисление идет с данными из предыдущей сессии

15.06.2022, 13:10. Показов 1101. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Заполняю данные в формы, нажимаю кнопку вычислить, показывается результат - все ок.

Обновляю страницу - формы пустые. Но если нажать кнопку "Вычислить снова", то вместо уведомления: "Ничего не введено" у меня просто выводится результат от предыдущего вычисления. Браузер или Фласк как-то сохраняет значения до обновления и с ними работает повторно.
Проверка на 7 строчке спокойно проходит с пустыми полями, так как они почему-то хранят данные от предыдущего запроса.

Как исправить поведение?


Так же мне не понравилось следующее поведение, как следствие этой причины:
Запускаю приложение, ввожу данные, нажимаю кнопку - ошибка стандартная фласковская.
Исправляю ошибку - обновляю (F5) страницу - проверяю БД и данные там записаны.
Хотя запись была ПОСЛЕ ошибки.
Я предполагаю, что браузер (или что-то еще) сохранил введенные данные и после F5 их снова записал.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@app.route('/', methods=["GET", "POST"])
def index():
    session = Session(engine)
    xxx = session.query(Coefficient).all()[-1]
    print(xxx)
    if request.method == 'POST':
        if request.form['a'] and request.form['b'] and request.form['c']:
            a = float(request.form['a'])
            b = float(request.form['b'])
            c = float(request.form['c'])
            result = decide(a, b, c)
 
            try:
                coefs = Coefficient(a=a, b=b, c=c)
                session = Session(engine)
                session.add(coefs)
                session.commit()
            except:
                print("Что-то пошло не так")
 
        else:
            result = "Введите коэффициенты"
 
    text = 'Введите коэффициенты А, В и С для решения уравнения: ' \
           'A*x^2 + B*x + c = 0'
    form = CoefficientForm()
    return render_template('index.html', form=form, text=text, result=result)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.06.2022, 13:10
Ответы с готовыми решениями:

Уничтожение предыдущей сессии WCF
Здравствуйте, у меня вопрос такой вопрос не могли бы вы подсказать как уничтожать сессию если при аутентификация логин и пароль не подошёл,...

Восстановление предыдущей сессии в Firefox
При закрытии и последующем открытии лисы, восстанавливаются не те вкладки, которые были при закрытии, точнее частично не те. Появляются 3-4...

Восстановление предыдущей сессии в Mozilla Firefox
Ребята, помогите, пожалуйста. Возникла проблема. Были открыты 3 окна firefox с очень большим количеством нужных открытых вкладок. Потом...

2
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
16.06.2022, 04:59
Цитата Сообщение от Luxmunx Посмотреть сообщение
Обновляю страницу - формы пустые. Но если нажать кнопку "Вычислить снова", то вместо уведомления: "Ничего не введено" у меня просто выводится результат от предыдущего вычисления.
а в логах, когда обновляете ничего не появляется, например непонятный POST запрос?
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5973 / 3735 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
03.07.2022, 17:02
Браузер не виноват, вы явно что-то намудрили с сессиями фласка.

Предлагаю такое решение:
HTML5
1
2
3
<input name="a" type="number" required>
<input name="b" type="number" required>
<input name="c" type="number" required>
То есть добавить required на все формы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.07.2022, 17:02
Помогаю со студенческими работами здесь

доступ к значениям предыдущей сессии в DLL
Zdravstvuyte! Pomogite pojaluysta reshit problemu. Est DLL, k ney v cikle obrashaetsa programma. Kajdiy noviy shag cikla zagrujaet i...

Сохранение положения тулбаров из предыдущей сессии пользователя
Пишу приложение на MFC. Пользователь может поменять положение тулбаров, выйти из приложения, при повторном входе в приложение, положение...

В MFC приложении не загружается положение тулбаров из предыдущей сессии
Здравствуйте! Досталось в наследство приложение написанное с помощью МFC. Так же с помощью мастера приложений создал тестовое приложение....

Удаление предыдущей сессии при открывании приложении во второй вкладке
Добрый день, Каким образом можно реализовать удаление предыдущей сессии, если приложение было открыто во второй вкладке. Пробовал: ...

Добавить компонент QLCDNumber, который должен отображать средний балл оценок предыдущей сессии
Задание. Информация о прошедшей сессии (название института, факультета, специальности, порядковый номер сессии, предстоящие экзамены и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию. 2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru