0

我正在webapp2.RequestHandler为 Python App Engine 应用程序实现一个。我需要执行的一个常见操作是验证是否存在所有必需的 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'])

4

1 回答 1

0

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

self.request.POST 返回一个 mulidict。所以很容易检查参数

for each in ['handle', 'phone_number']:
    if each not in self.request.POST:
        # your error code here
于 2014-06-03T09:54:34.867 回答