我试图将数据从网页获取到我的flask应用程序,并在对其进行一些操作后,输出列表我试图将其作为下拉列表发送回前端。
到目前为止我做了什么:
有一个用户表单,用户可以在其中输入详细信息并单击提交,然后他会得到一个 json 输出。
在这种形式中,我有一个搜索按钮,当用户输入一个字符串时,该字符串被发送到 Flask 应用程序路由,并且很少进行搜索操作并输出一个项目列表(直到这部分工作!)
我需要开始工作的是输出列表应该再次发送回表单页面,我无法让它工作。
这是我到目前为止所做的:
var successFunction = function(response) {
/* do something here */
$('#info').html(JSON.stringify(data, null, ' '));
});
}
$(function(){
$('#btnSignUp').click(function(){
$.ajax({
url: '/signUp',
data: $('form').serialize(),
type: 'POST',
success: successfunction(response)
error: function(error){
console.log(error);
}
});
});
});
flask应用程序有这样的东西:
from flask import Flask, render_template, request,jsonify,url_for
import json,os,re
app = Flask(__name__)
@app.route('/',methods=['GET','POST'])
def form():
if request.method == 'POST': #this block is only entered when the form is submitted
result = { key: value[0] if len(value) == 1 else value
for key, value in request.form.iterlists()
}
return json.dumps(result,indent=2)
return render_template('form_backup1.html')
@app.route("/signUp", methods=["POST","GET"])
def signUp():
jsdata = request.form['Nitro']
<couple of find and search operations the output of which is in
this dropdown_list list>
return jsonify(dropdown_list)
if __name__ == '__main__':
app.run(host="0.0.0.0",port="5000",debug = True)
剪切 html 页面只是为了显示搜索框:
<div id='nitroo'>
Nitro_search: <input type="text" placeholder="Apply Nitro" name="Nitro" id="Nitro">
<button id="btnSignUp" class="btn btn-lg btn-primary btn-block" type="button">Search</button>
<pre id="info"></pre>
正如我所说,当用户单击搜索时,我能够获取用户在 html 表单中输入的文本。python的输出列表是我无法进入前端的地方。
对此的任何帮助将不胜感激。
谢谢