擅长:python、mysql、java
<p>只要输入的数据可以以类似于多Dict的格式读取,就没有理由仍然不能使用WTForms进行验证(尽管,这比使用Colander要尴尬一些)。</p>
<p>因此,对于一个产生和使用JSON的假设API,您可以这样做:</p>
<pre><code>class MyDataStructure(Form):
widget = TextField("Widget", validators=[Required()])
quantity = IntegerField("Quantity", validators=[Required()])
@app.route("/api/v1/widgets", methods=["POST"])
def widgets():
try:
new_widget_info = json.loads(request.form.data)
except KeyError:
return jsonify(error="Must provide widget JSON in data param")
except ValueError:
return jsonify(error="Invalid JSON Provided")
data = MyDataStructure(**new_widget_info)
if not data.validate():
return jsonify(error="Missing or invalid data",
error_details=data.errors)
else:
# Create a new widget
</code></pre>