示例#1
0
def normalize_args(parser, mpreq):
    """
    Normalizer for Python's cgi library.
    """
    args = {}
    fs = FieldStorage(mpreq)

    # Cast down from the FieldStorage object to Python str.
    for name in fs.keys():
        value = fs[name]
        if isinstance(value, str):
            value = str(value)

        elif isinstance(value, Field):
            value = FileUpload(value)

        elif isinstance(value, list):
            for i in range(len(value)):
                if isinstance(value[i], str):
                    value[i] = str(value[i])

                elif isinstance(value[i], Field):
                    value[i] = FileUpload(value[i])

        if name:  # mod_python sometimes gives a None key
            args[name] = value

    return args
示例#2
0
def _reqArgs(req):
    """
    Returns a dictionary of name->value pairs for request's arguments and fields.
    """
    result = {}
    data = FieldStorage(req, keep_blank_values=1)
    for fieldName in data.keys():
        fieldData = data[fieldName] 
        if type(fieldData) is list:  # on POST requests if there is name collision between a parameter and a field
            result[fieldName] = fieldData[-1].value
        else:
            result[fieldName] = fieldData.value
    return result
示例#3
0
def _reqArgs(req):
    """
    Returns a dictionary of name->value pairs for request's arguments and fields.
    """
    result = {}
    data = FieldStorage(req, keep_blank_values=1)
    for fieldName in data.keys():
        fieldData = data[fieldName] 
        if type(fieldData) is list:  # on POST requests if there is name collision between a parameter and a field
            result[fieldName] = fieldData[-1].value
        else:
            result[fieldName] = fieldData.value
    return result
示例#4
0
class Args:
    def __init__( self, req ):
        from mod_python.util import FieldStorage
        self.fieldStorage = FieldStorage( req, True )

    # return a list of values for the given key,
    # or None if key not there
    def get( self, var ):
        retVar = self.fieldStorage.getlist( var )
        if len( retVar ) == 0:
            return None
        else:
            return retVar

    # return a list of tuples,
    # (key, value) where value is a list of values
    def items( self ):
        result = [];
        for key in self.fieldStorage.keys():
            result.append( (key, self.fieldStorage.getlist( key ) ) )
        return result