#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. Пожалуйста, добавьте это в свой вопрос, таким образом невозможно увидеть отступ.