コード例 #1
0
 def params(self):
     """ A combined :class:`MultiDict` with values from :attr:`forms` and
         :attr:`GET`. File-uploads are not included. """
     params = MultiDict(self.GET)
     for key, value in self.forms.iterallitems():
         params[key] = value
     return params
コード例 #2
0
 def GET(self):
     """ The QUERY_STRING parsed into an instance of :class:`MultiDict`. """
     data = parse_qs(self.query_string, keep_blank_values=True)
     get = self.environ['mole.get'] = MultiDict()
     for key, values in data.iteritems():
         for value in values:
             get[key] = value
     return get
コード例 #3
0
    def files(self):
        """ File uploads parsed into an instance of :class:`MultiDict`.

            This property contains file uploads parsed from an
            `multipart/form-data` encoded POST request body. The values are
            instances of :class:`cgi.FieldStorage`.
        """
        files = MultiDict()
        for name, item in self.POST.iterallitems():
            if hasattr(item, 'filename'):
                files[name] = item
        return files
コード例 #4
0
    def forms(self):
        """ POST form values parsed into an instance of :class:`MultiDict`.

            This property contains form values parsed from an `url-encoded`
            or `multipart/form-data` encoded POST request bidy. The values are
            native strings.
        """
        forms = MultiDict()
        for name, item in self.POST.iterallitems():
            if not hasattr(item, 'filename'):
                forms[name] = item
        return forms
コード例 #5
0
 def POST(self):
     """ The combined values from :attr:`forms` and :attr:`files`. Values are
         either strings (form values) or instances of
         :class:`cgi.FieldStorage` (file uploads).
     """
     post = MultiDict()
     safe_env = {'QUERY_STRING': ''}  # Build a safe environment for cgi
     for key in ('REQUEST_METHOD', 'CONTENT_TYPE', 'CONTENT_LENGTH'):
         if key in self.environ: safe_env[key] = self.environ[key]
     if NCTextIOWrapper:
         fb = NCTextIOWrapper(self.body,
                              encoding='ISO-8859-1',
                              newline='\n')
     else:
         fb = self.body
     data = cgi.FieldStorage(fp=fb,
                             environ=safe_env,
                             keep_blank_values=True)
     for item in data.list or []:
         post[item.name] = item if item.filename else item.value
     return post