#javascript #python #django #flask #bottle
Вопрос:
Как запустить операцию , если кнопка нажата в первый раз, но при повторном нажатии выполните дополнительные действия.
if request.method == 'POST': # if i press a button on the client side, (obj_list) return something like this [0.3, 2.32, 1.22] passed here through ajax (no problem here) x = 1 obj_db = [] for obj_items in obj_list: should_sum = False while not should_sum: x *= obj_items #return only two decimal numbers after float number new_obj_num = round(obj_total, 2) obj_db.append(new_obj_num) print('stored value : ', obj_db) if object_selected: obj_db = obj_items else: should_sum = True
теперь, когда я нажимаю кнопку, мне нужны данные obj_list для умножения и сохранения результатов в obj_db(что я и сделал). Но когда я нажимаю снова (со стороны клиента), мне нужно умножить, но суммировать с предыдущими сохраненными результатами. Есть Какие-Нибудь Предложения ??!
Комментарии:
1. Привет! Не могли бы вы поделиться еще немного кодом? Прямо сейчас я вижу, что ваш файл js выполняет запрос post, но в вашем файле python вы пытаетесь прочитать форму, но, не зная, как вы загружаете параметр forms в запрос, трудно понять, что не так.
2. @Gabo только что поделился кодом , нет никаких проблем с получением данных через почтовый запрос . я обновил вопрос сейчас
3. Вам нужно где-то сохранить значение счетчика, прежде чем отвечать на запрос браузера. Вы можете сохранить его в базе данных, если пользователь каким-то образом идентифицирован. Вы можете сохранить его в атрибуте класса, если используете представления классов, но это не рекомендуется, так как он будет сброшен после сброса сервера. Или вы можете вернуть значение счетчика в своем ответе, чтобы браузер мог повторно отправить его вам при следующем щелчке мыши.
4. @Gabo у вас есть пример кода для этого , проблема здесь не в счетчике , если дважды нажать кнопку , нужно умножить и суммировать с возвращенными предыдущими данными
5. ОК. затем вам нужно сохранить предыдущие возвращенные данные. Если это небольшой проект и он предназначен только для одного пользователя, попробуйте использовать файл для хранения предыдущих данных, чтобы вы могли получить их при следующем запросе для использования
Ответ №1:
Как мы говорили в комментариях, вам нужно сохранить свой счетчик, чтобы узнать, сколько раз кто-либо нажимал.
# try to read the counter stored in a file try: f = open("counter.txt", "r") data_returned_as_str = f.read() counter = int(data_returned_as_str) except FileNotFoundError as e: counter = 0 # do your stuff counter = 1 f = open("counter.txt", "w") # use write to overwrite the last content f.write(str(counter)) f.close() print(counter)
Если вам также нужны предыдущие данные, напишите другой файл, чтобы прочитать его.
Комментарии:
1. я пытался переработать ваш ответ в соответствии со своими потребностями, но ничего не вышло. основная проблема заключается в том, когда кнопка нажата один раз, второй, третий ….
2. Пожалуйста, полностью опишите, что происходит, чтобы я мог вам помочь. Отредактируйте свой ответ, чтобы описать в псевдокоде, что вы пытаетесь сделать, если вам это нужно.