96 lines
1.9 KiB
Python
Executable File
96 lines
1.9 KiB
Python
Executable File
from urllib.parse import unquote_plus
|
|
|
|
class RequestParameter:
|
|
|
|
def __init__(self,name,value = None,headers = {}):
|
|
self.__name = name
|
|
self.__value = value
|
|
self.__headers = headers
|
|
|
|
def name(self):
|
|
return self.__name
|
|
def value(self):
|
|
return self.__value
|
|
def headers(self):
|
|
return self.__headers
|
|
|
|
def filename(self):
|
|
pp = self.__headers.parameters("CONTENT-DISPOSITION")
|
|
if (not pp is None) and ("filename" in pp.keys()):
|
|
return pp["filename"]
|
|
return None
|
|
|
|
def save(self, filename):
|
|
f = open( filename, "wb" )
|
|
f.write( self.__value )
|
|
f.close()
|
|
|
|
|
|
class RequestParameters:
|
|
|
|
def __init__(self, request):
|
|
self.__request = request
|
|
self.__values = {}
|
|
|
|
self.__append_query()
|
|
self.__append_mime()
|
|
|
|
def __getitem__(self,name):
|
|
return self.__values[name][0]
|
|
|
|
def __contains__(self,name):
|
|
return name in self.__values
|
|
|
|
def get(self,name):
|
|
try:
|
|
return self[name].value()
|
|
except:
|
|
return None
|
|
|
|
def getOrDefault(self, name, default = None):
|
|
if name in self:
|
|
return self[name].value()
|
|
return default
|
|
|
|
|
|
def keys(self):
|
|
return self.__values.keys()
|
|
|
|
def list(self,name):
|
|
if name in self.__values:
|
|
return list(self.__values[name])
|
|
return []
|
|
|
|
def __append_var(self,var):
|
|
if not var.name() in self.__values.keys():
|
|
self.__values[var.name()] = []
|
|
self.__values[var.name()].append( var )
|
|
|
|
def __append_mime(self):
|
|
pass
|
|
# mime = self.__request.mime()
|
|
#
|
|
# if (mime.multipart()):
|
|
# for p in mime.parts():
|
|
# n = p.name()
|
|
# if not n is None:
|
|
# self.__append_var(FormValue(n,p.body(),p.headers()))
|
|
|
|
def __append_query(self):
|
|
qs = self.__request.query()
|
|
|
|
pairs = qs.split("&")
|
|
for pair in pairs:
|
|
sp = pair.split("=")
|
|
if (len(sp)>0):
|
|
name = sp[0]
|
|
if (len(sp)>1):
|
|
value = sp[1]
|
|
else:
|
|
value= ""
|
|
|
|
self.__append_var( RequestParameter( unquote_plus(name), unquote_plus(value)) )
|
|
|
|
|
|
|