验证webapp2请求参数是否存在

时间:2014-06-02 01:17:36

标签: python webapp2 simplification

我正在为Python App Engine应用程序实现webapp2.RequestHandler。我需要执行的常见操作是验证是否存在所有必需的HTTP请求参数。

为了做到这一点,我一遍又一遍地重写相同的样板:

def put(self):
    handle = self.request.get('handle')
    phone_number = self.request.get('phone_number')

    # Check that all required parameters are present.
    missing_parameter = None
    if not handle:
        missing_parameter = 'handle'
    if not phone_number:
        missing_parameter = 'phone_number'

    if missing_parameter:
        error_message = 'Missing parameter: \'%s\'.' % (missing_parameter)
        logging.warning(error_message)
        self.error(400)
        self.response.out.write(error_message)
        return

有更好的方法吗?我认为有一些方法可以滥用Python的动态功能来减少这个锅炉板。类似的东西:

checkArgs(self, ['handle', 'phone_number'])

1 个答案:

答案 0 :(得分:0)

文档:http://webapp-improved.appspot.com/guide/request.html#post-data

self.request.POST返回一个多名。因此很容易检查参数

for each in ['handle', 'phone_number']:
    if each not in self.request.POST:
        # your error code here