Как мне передать входные данные из jQuery в Flask?

#python #jquery #flask

Вопрос:

У меня есть три входа, я пытаюсь передать значения обратно в функцию внутри моего приложения, из index.html приготовлено в колбе.

Вот входные данные:

 lt;form method="POST" action="/"gt;  lt;smallgt;What is your gross income? lt;BRgt;lt;/smallgt;  lt;input type="number" id="Income"gt;lt;BRgt;lt;BRgt;   lt;div class="slidecontainer"gt;  lt;smallgt; What % of income for house payment?lt;/smallgt;lt;BRgt;  lt;input type="range" min="10" max="60" value="28" class="slider" id="percent_income" step="1"gt;lt;BRgt;  lt;smallgt;lt;labelgt; Percent: lt;span id="Percent"gt;lt;/spangt;%lt;/labelgt;lt;/smallgt;  lt;/divgt;   lt;div class="slidecontainer"gt;  lt;smallgt; What is your interest rate?lt;/smallgt;lt;BRgt;  lt;input type="range" min="2" max="6" value="3.5" class="slider" id="interest_rate" step=".25"gt;lt;BRgt;  lt;smallgt;lt;labelgt; Rate: lt;span id="Rate"gt;lt;/spangt;%lt;/labelgt;lt;/smallgt;  lt;/divgt;   lt;/formgt;  

Вот скрипт для присвоения и отображения их значений на странице (для ползунков Ставки и процента дохода), а также мое начало в попытке передать значения.

 $(function() {  var slider3 = $("#interest_rate");  $("#Rate").html(slider3.val());   slider3.change(function() {  $("#Rate").html(slider3.val());  })   var slider4 = $("#percent_income");  $("#Percent").html(slider4.val());   slider4.change(function() {  $("#Percent").html(slider4.val());  })  });  function fetchdata()  {  $.getJSON({  type: "GET",  url: "{{ url_for('calcprice') }}",  data: {  'Income': $('#Income option:selected').html(),  'Percent': $('#percent_income option:selected').html(),  'Rate': $("#interest_rate option:selected").html(),  },  success: function(data){  console.log(data)  }  });  }   $(document).mouseup(function () {fetchdata()});  $(document).on('change', function () {fetchdata()});  

Вот маршрут, который я начал, по которому я пытаюсь передать значения / значения запроса, но я немного застрял, новичок в jQuery, и я получаю 404 ошибки при изменении значений. Работает в циклах, пытаясь разобрать, что происходит, а что нет. Любой совет приветствуется!

 @app.route('/calcprice', methods=['GET', 'POST']) def calcprice():  Income = request.args.get('Income')  Percent = request.args.get('Percent')  Rate = request.args.get('Rate')  return price  

Комментарии:

1. вы действительно хотите выяснить, связана ли проблема с внешним или внутренним (колба). Если вы запустите фрагмент jQuery console.log($('#Income option:selected').html()) в начале fetchdata , какое значение вы получите? Я ожидал бы, что вы захотите использовать $('#Income').val()

2. Спасибо. Это очень помогло и привело меня на тот путь, по которому я смог найти ответ.

3. Кажется, я не могу отметить ваш вопрос как ответ, но я бы сделал это, если бы мог.

Ответ №1:

Чтобы получить значение из поля ввода с помощью jQuery, попробуйте выполнить следующие действия: $('#{Id_of_input_field}').val()

В вашем примере это будет выглядеть примерно так:

 $.getJSON({  type: "GET",  url: "{{ url_for('calcprice') }}",  data: {  'Income': $('#Income').val(),  'Percent': $('#percent_income').val(),  'Rate': $("#interest_rate").val(),  },  success: function(data){  console.log(data)  } });