Невозможно получить значение выпадающего списка в FLASK

#html #mongodb #flask

#HTML #mongodb #flask

Вопрос:

В следующем коде я не могу получить значение параметра в моем коде python из моего HTML-кода. Я динамически добавляю данные в свой выпадающий список.

     <form name="info-form" method="POST">
        <select id="record" name="val" width="600px">
            <option SELECTED value='0'>Select a name to view info</option>  
            {% for i in data %}
             <option name= "abc" value= '{{ i.name }}'>{{i.name}}</option>
            {% endfor %}
        </select>
        <button type= "submit" class="btn">Submit</button>
    </form>
 

Это мой метод ajax в файле сценария для перенаправления страницы:

 $("form[name=info-form").submit(function(e){
 var $form = $(this);
 var $error = $form.find(".error");
 $.ajax({
  url: "/info/",
  type: "POST",
  success: function(resp) {
    window.location.href = "/info/";
   }
   ,
   error: function(resp) {
    console.log(error)
  }
});
e.preventDefault();
});


    @app.route("/info/", methods =['GET','POST'])
    def info():
     if request.method == 'POST':
      data = []
      pname =request.form.get('nm')
      data = db.users.find({ "name" : pname })
      print(pname)
      return render_template('recieve.html', data = data)
    else:
      gname = request.args.get('nm')
      print(gname)
      return render_template('recieve.html')
 

Есть ли какие-либо проблемы с get и post? Я перенаправляю свой URL на ‘/ info /’ с помощью Jquery и AJAX.
как в gname, так и в pname я не получаю ничего. Я не понимаю, почему это так?

Я хочу отправить выбранное значение в запрос pymongo, чтобы получить значения, которые я перенаправлю на другую страницу.

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

1. Метод по умолчанию — GET, поэтому попробуйте добавить запрос if.method == ‘POST’ в информационную функцию.

2. Попробовал это, но я получаю следующее: «Ошибка типа: функция просмотра не вернула действительный ответ. Функция либо вернула None, либо завершилась без оператора return. »

3. Вы также должны возвращать что-то, когда это метод GET. Покажите свой код здесь, пожалуйста?

4. @app.route(«/info/», methods =[‘GET’,’POST’]) def info(): если request.method == ‘POST’ data = [] print(request.form.get(«val»)) data = db.selectingASingleFieldDemo.find({ «name» : request.form.get(«val»)}) возвращает render_template(‘recieve.html ‘, данные = данные)

5. Пожалуйста, добавьте это в свой вопрос, таким образом невозможно увидеть отступ.