WTForms-JSON 没有收到表单数据
WTForms-JSON not receiving form data
这是一个我无法理解的地狱错误。
我有一个简单的 API 处理程序,它在 Postman JSON POST 中工作得很好。
然而,当我将数据插入网络表单时,JSON 是空的。例如:
162.249.161.234 - - [23/May/2017 10:52:55] "POST /submitworkorder HTTP/1.1" 200 -
{'customer': None}
我的Flask如下:
@app.route('/')
def index():
form = SubmitWorkorderForm.from_json(request.json)
print form.data
return render_template('submitworkorder.html', form = form)
@app.route('/submitworkorder', methods=['POST'])
def submitworkorder():
form = SubmitWorkorderForm.from_json(request.json)
print form.data
if form.validate_on_submit():
customer = form.customer.data
return jsonify({'customer' : customer })
还有我的HTML:
<div class="container">
<form class="form-inline">
{{ form.customer }}
{{ form.hidden_tag() }}
<input type="submit" value="go"/>
</form>
<br>
<div id="successAlert" class="alert alert-success" role="alert" style="display:none;"></div>
<div id="errorAlert" class="alert alert-danger" role="alert" style="display:none;"></div>
最后是我的 JS:
$(document).ready(function() {
console.log("form Data:", $('form').serialize())
$.ajax({
type: "POST",
dataType: "json",
url : "/submitworkorder",
data : $('form').serialize(),
success: function (data) {
if (data.error) {
$('#errorAlert').text(data.error).show();
$('#successAlert').hide();
}
else {
$('#successAlert').text(data.customer + 'successfully created.').show();
$('#errorAlert').hide();
}
}
});
});
我已经为此工作了 8 个小时的大部分时间,但毫无进展。感谢任何帮助。
这是由一些旧文档引起的。 WTForms 现在内置了对处理序列化 JSON 的支持,你不再 需要 from_json
或 request.json
。
按照您的意愿简单地导入和实例化您的表单。
固定代码如下:
@app.route('/')
def index():
form = SubmitWorkorderForm.from_json()
print form.data
return render_template('submitworkorder.html', form = form)
这是一个我无法理解的地狱错误。
我有一个简单的 API 处理程序,它在 Postman JSON POST 中工作得很好。
然而,当我将数据插入网络表单时,JSON 是空的。例如:
162.249.161.234 - - [23/May/2017 10:52:55] "POST /submitworkorder HTTP/1.1" 200 -
{'customer': None}
我的Flask如下:
@app.route('/')
def index():
form = SubmitWorkorderForm.from_json(request.json)
print form.data
return render_template('submitworkorder.html', form = form)
@app.route('/submitworkorder', methods=['POST'])
def submitworkorder():
form = SubmitWorkorderForm.from_json(request.json)
print form.data
if form.validate_on_submit():
customer = form.customer.data
return jsonify({'customer' : customer })
还有我的HTML:
<div class="container">
<form class="form-inline">
{{ form.customer }}
{{ form.hidden_tag() }}
<input type="submit" value="go"/>
</form>
<br>
<div id="successAlert" class="alert alert-success" role="alert" style="display:none;"></div>
<div id="errorAlert" class="alert alert-danger" role="alert" style="display:none;"></div>
最后是我的 JS:
$(document).ready(function() {
console.log("form Data:", $('form').serialize())
$.ajax({
type: "POST",
dataType: "json",
url : "/submitworkorder",
data : $('form').serialize(),
success: function (data) {
if (data.error) {
$('#errorAlert').text(data.error).show();
$('#successAlert').hide();
}
else {
$('#successAlert').text(data.customer + 'successfully created.').show();
$('#errorAlert').hide();
}
}
});
});
我已经为此工作了 8 个小时的大部分时间,但毫无进展。感谢任何帮助。
这是由一些旧文档引起的。 WTForms 现在内置了对处理序列化 JSON 的支持,你不再 需要 from_json
或 request.json
。
按照您的意愿简单地导入和实例化您的表单。
固定代码如下:
@app.route('/')
def index():
form = SubmitWorkorderForm.from_json()
print form.data
return render_template('submitworkorder.html', form = form)