async def getPostData(self, request: Request) -> dict: reader = await request.multipart() if reader is None: md = await request.post() ns = multiDict2Dict(md) return ns ns = {} while 1: field = await reader.next() if not field: break value = '' if hasattr(field, 'filename'): saver = FileStorage() value = await saver.save(field.filename, field.read_chunk) else: value = await field.read(decode=True) ov = ns.get(field.name) if ov: if type(ov) == type([]): ov.append(value) else: ov = [ov, value] else: ov = value ns.update({field.name: ov}) return ns
async def post(self): """ insert data """ try: ns = multiDict2Dict(await self.request.post()) with self.db.sqlorContext(self.dbname) as sor: d = await sor.C(self.tablename, ns) return json_response(Success(d)) except Exception as e: print(e) traceback.print_exc() return json_response(Error(errno='add error', msg='add error'))
async def delete(self, request: Request, instance_id): """ delete data """ try: ns = multiDict2Dict(self.request.query) with self.db.sqlorContext(self.dbname) as sor: d = await sor.D(self.tablename, ns) return json_response(Success(d)) except Exception as e: print(e) traceback.print_exc() return json_response(Error(erron='delete error', msg='error'))
async def get(self) -> Response: """ query data """ try: ns = multiDict2Dict(self.request.query) with self.db.sqlorContext(self.dbname) as sor: d = await sor.R(self.tablename, ns) return json_response(Success(d)) except Exception as e: print(e) traceback.print_exc() return json_response( Error(errno='search error', msg='search error'))
async def getArgs(): ns = DictObject() if request.method == 'POST': return await self.getPostData(request) ns = multiDict2Dict(request.query) return ns