2009年7月8日

GAEでPOSTパラメータを柔軟に受け取る

GAEに限らないけど、キャッチーにしたいので。
PHPとかで、パラメータ名を"a[]"にすると配列として複数のパラメータを受け取れるというアレ。
とりあえずformencodeを使えばいいかな。

>>> import formencode.variabledecode
>>>
>>> params = {"names-1.fname":"John",
... "names-1.lname":"Doe",
... "names-2.fname":"Jane",
... "names-2.lname":"Brown",
... "names-3":"Tim Smith",
... "action save":None,
... "action.option":"overwrite",
... "action.confirm":"yes",
... }
>>>
>>> print formencode.variabledecode.variable_decode(params)
{'action': {'option': 'overwrite', 'confirm': 'yes'}, 'names': [{'lname': 'Doe', 'fname': 'John'}, {'lname': 'Brown', 'f
name': 'Jane'}, 'Tim Smith'], 'action\tsave': None}

formencode.variabledecode – Turn flat HTML form submissions into nested structures — FormEncode v1.2.2 documentation