我正在使用Python的GAE,同时使用了很多表单。通常,我的代码看起来像这样:
class Handler(BaseHandler):
#...
def post(self):
name = self.request.get("name")
last_name = self.request.get("last_name")
# More variables...
n = self.request.get("n")
#Do something with the variables, validations, etc.
#Add them to a dictionary
data = dict(name=name, last_name=last_name, n=n)
info = testdb.Test(**data)
info.put()
最近我注意到,当表单中有许多输入(变量)时,它会变得太长。因此,我想也许我可以发送一个字符串化的JSON对象(可以使用json.loads将其视为Python字典)。目前它看起来像这样:
class Handler(BaseHandler):
#...
def post(self):
data = validate_dict(json.loads(self.request.body))
#Use a variable like this: data['last_name']
test = testdb.Test(**data)
test.put()
这样做缩短了很多。我倾向于采用这种方式(并停止使用self.request.get("something")),但我担心除了客户端需要javascript才能工作外,可能会错过一些缺点。我可以这样做吗?还是在重新排列代码之前应考虑一些事情?