This commit is contained in:
yumoqing 2021-12-13 15:21:40 +08:00
parent 61f0b52f0f
commit 6367b545ba
3 changed files with 47 additions and 2 deletions

44
ahserver/crudProcessor.py Normal file
View File

@ -0,0 +1,44 @@
import ujson as json
from .baseProcessor import BaseProcessor
from crud_engine.crud_engine import CRUDEngine
class CrudProcessor(BaseProcessor):
@classmethod
def isMe(self, name):
return name == 'crud'
def get_default_filter_data(self):
subffix = '.filterdata'
user = self.run_evn.get('user')
if user:
subffix = f'{subffix}.{user}'
f = f'{self.real_path}{subffix}'
if os.path.exists(f):
with codecs.open(f, 'r', 'utf-8') as ff:
d = json.load(ff)
return d
return None
async def path_call(self, request, params={}):
await self.set_run_env(request)
dic = {}
with codees.open(self.real_path, 'r', 'utf-8') as f:
dic = json.load(f)
x = request.path.split('/')
if len(x) >= 3:
act = x[-2]
if act in [':browser', ':filter', ':add', ':edit', ':delete']:
database = x[-4]
table = x[-3]
else:
database = x[-3]
table = x[-2]
act = ':browser'
default_filter_data = self.get_default_filter_data()
ce = CRUDEngine(database, table, dic, default_filter_data)
return await ce.dispatch(act)
raise HttpError(500)
async def datahandle(self, request):
self.content = await self.path_call(request)

View File

@ -36,9 +36,9 @@ class FunctionProcessor(BaseProcessor):
async def datahandle(self,request): async def datahandle(self,request):
x = await self.path_call(request, self.path) x = await self.path_call(request, self.path)
if isinstance(x,Response): if isinstance(x,web.FileResponse):
self.retResponse = x self.retResponse = x
elif isinstance(x,web.FileResponse): elif isinstance(x,Response):
self.retResponse = x self.retResponse = x
else: else:
self.content = x self.content = x

View File

@ -33,6 +33,7 @@ from appPublic.timecost import TimeCost
from appPublic.timeUtils import timestampstr from appPublic.timeUtils import timestampstr
from .baseProcessor import getProcessor from .baseProcessor import getProcessor
from .crudProcessor import CrudProcessor
from .xlsxdsProcessor import XLSXDataSourceProcessor from .xlsxdsProcessor import XLSXDataSourceProcessor
from .sqldsProcessor import SQLDataSourceProcessor from .sqldsProcessor import SQLDataSourceProcessor
from .functionProcessor import FunctionProcessor from .functionProcessor import FunctionProcessor