我正在使用Google App引擎实施小型在线调查。我已经进行了调查。我现在需要的是可以将参与此调查的人的所有输入存储在数据库中。
实现此目的的直接方法是为每个输入创建一个具有属性的实体,并在每个人提交填写的调查时都创建一个这样的实体。
由于我的调查中大约有30个输入,因此我想知道是否存在一种更优雅的方法,或者至少是一种较无聊的方法,可以将发布请求中的数据转换为数据存储实体。
谢谢你。
WTForms具有GAE扩展,可用于从模型中生成表单以及从表单中生成模型。
使用WTForms,可以为您生成表单字段HTML,但我们让您在模板中对其进行自定义。这使您可以保持代码和表示的分离,并使那些凌乱的参数不包含在python代码中。因为我们致力于松散耦合,所以您也应该能够在任何您喜欢的模板引擎中做到这一点。
http://wtforms.simplecodes.com/docs/1.0.2/ext.html
wtforms.ext.appengine.db.model_form(model, base_class=Form, only=None, exclude=None, field_args=None, converter=None)
为给定的db.Model类创建并返回动态wtforms.Form类。表单类可以按原样使用,也可以用作扩展表单类的基础,然后可以将非模型相关字段,子表单与其他模型表单以及其他可能性混合使用。
基于表单创建模型涉及创建表单对象,然后将POST数据传递给它。
http://wtforms.readthedocs.org/en/latest/forms.html#the-form-class
formdata
–用于传递来自最终用户的数据,通常是request.POST或等效数据。formdata应该是某种请求数据包装器,可以从表单输入中获取多个参数,并且值是unicode字符串,例如Werkzeug / Django / WebOb MultiDict
而且这里有一个类似的问题:WTForms错误:TypeError:formdata应该是一个multidict类型的包装器
例如
def post(self):
form = model_form(Ticket)
form_object = form(formdata=self.request.POST)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句