john pfeiffer
  • Home
  • Categories
  • Tags
  • Archives

http server request parse query and body parameters

from urlparse import parse_qs
import urllib

# parse and merge query and body parameters


# parameters = self._parse_query_parameters( self.request.query_string , self.request.body )
# if self.request.method == 'POST' or self.request.method == 'DELETE':  # GET should not have body parameters



    def _parse_query_parameters( self , queryString, body ):
        """ extracts request parameters from query string and body
        """
        parameters = Utility.parse_query( queryString ) if queryString else dict()
        bodyParameters = Utility.parse_query( body ) if body else dict()
        if bodyParameters:
                parameters.update( bodyParameters )
        return parameters


    @staticmethod
    def parse_query( param_str ):
        """Turn URL string into parameters."""
        utf_string = Utility.get_utf_string( param_str )
        parameters = parse_qs( utf_string , keep_blank_values = True )
        for k , v in parameters.iteritems( ):
            parameters[ k ] = urllib.unquote ( v[ 0 ] )
        return parameters


    @staticmethod
    def get_utf_string( s ):
        if s:
            return s.encode('utf-8') if type(s) is unicode else (s if type(s) is str else str(s))
        else:
            return s

  • « Nginx static files slim php require import class
  • javascript UTC to local onload jinja2 »

Published

Jul 1, 2013

Category

python

~114 words

Tags

  • and 29
  • body 2
  • http 12
  • parameters 15
  • parse 5
  • python 180
  • query 7
  • request 5
  • server 66