Exemplo n.º 1
0
 def __init__(self, request, dbname, tablename, id=None):
     super().__init__()
     self.dbname = dbname
     self.tablename = tablename
     self.request = request
     self.db = DBPools()
     self.id = id
Exemplo n.º 2
0
    def getPagingData(self, dict_data, ns, request):
        pool = DBPools()

        @pool.runSQLPaging
        def sql(dbname, NS):
            sqldesc = dict_data.get('sqldesc')
            return sqldesc

        db = dict_data['sqldesc']['db']
        ret = sql(db, ns)
        return ret
Exemplo n.º 3
0
    def getData(self, dict_data, ns, request):
        pool = DBPools()

        @pool.runSQL
        def sql(dbname, NS):
            sqldesc = dict_data.get('sqldesc')
            return sqldesc

        db = dict_data['sqldesc']['db']
        ret = [i for i in sql(db, ns)]
        return ret
Exemplo n.º 4
0
 def __init__(self):
     workdir = programPath = ProgramPath()
     if len(sys.argv) > 1:
         workdir = sys.argv[1]
     config = getConfig(workdir, {
         'ProgramPath': programPath,
         'workdir': workdir
     })
     if config.get('databases'):
         DBPools(config.databases)
     initEnv()
     paths = [os.path.abspath(p) for p in config.website.paths]
     resource = BaseResource(paths, indexes=config.website.indexes)
     setupTemplateEngine()
     resource.indexes = config.website.indexes
     resource.processors = config.website.processors
     self.app = MyApp(static=resource)
     resource.app = self.app
Exemplo n.º 5
0
 def __init__(self, auth_klass=AuthAPI, workdir=None):
     super().__init__()
     if workdir is not None:
         pp = ProgramPath()
         config = getConfig(workdir, {
             'workdir': workdir,
             'ProgramPath': pp
         })
     else:
         config = getConfig()
     if config.databases:
         DBPools(config.databases)
     initEnv()
     setupTemplateEngine()
     self.app = web.Application()
     auth = auth_klass()
     auth.setupAuth(self.app)
     self.configPath(config)
Exemplo n.º 6
0
    def getDataDesc(self, dict_data, ns, request):
        pool = DBPools()

        @pool.runSQLResultFields
        def sql(dbname, NS):
            sqldesc = dict_data.get('sqldesc')
            # print('sql(),sqldesc=',sqldesc)
            return sqldesc

        rec = dict_data.get('datadesc', None)
        if rec is None:
            sqldesc = dict_data.get('sqldesc')
            ns = dict_data.get('arguments', {})
            rec = [r for r in sql(sqldesc['db'], ns) if r['name'] != '_row_id']
            dict_data['datadesc'] = rec
            f = codecs.open(self.src_file, 'w', self.config.website.coding)
            b = json.dumps(dict_data, indent=4)
            f.write(b)
            f.close()
        return rec
Exemplo n.º 7
0
def initEnv():
    pool = DBPools()
    g = ServerEnv()
    g.configValue = configValue
    g.visualcoding = visualcoding
    g.uriop = URIOp
    g.isNone = isNone
    g.json = json
    g.int = int
    g.str = str
    g.float = float
    g.type = type
    g.ArgsConvert = ArgsConvert
    g.time = time
    g.curDateString = curDateString
    g.curTimeString = curTimeString
    g.datetime = datetime
    g.random = random
    g.str2date = str2Date
    g.str2datetime = str2Datetime
    g.curDatetime = curDatetime
    g.uObject = uObject
    g.uuid = getID
    g.runSQL = runSQL
    g.runSQLPaging = runSQLPaging
    g.runSQLIterator = pool.runSQL
    g.runSQLResultFields = pool.runSQLResultFields
    g.getTables = pool.getTables
    g.getTableFields = pool.getTableFields
    g.getTablePrimaryKey = pool.getTablePrimaryKey
    g.getTableForignKeys = pool.getTableForignKeys
    g.folderInfo = folderInfo
    g.abspath = abspath
    g.data2xlsx = data2xlsx
    g.xlsxdata = XLSXData
    g.openfile = openfile
    g.CRUD = CRUD
    g.DBPools = DBPools
Exemplo n.º 8
0
    },
    "cfae": {
        "driver": "mysql.connector",
        "coding": "utf8",
        "dbname": "cfae",
        "kwargs": {
            "user": "******",
            "db": "cfae",
            "password": "******",
            "host": "localhost"
        }
    }
}

loop = asyncio.get_event_loop()
pool = DBPools(dbs, loop=loop)


async def printTables(dbname):
    r = await pool.getTables(dbname)
    print('tables=', r)


async def printFields(dbname, tablename):
    r = await pool.getTableFields(dbname, tablename)
    print(dbname, tablename, 'fields=', r)


async def printPrimary(dbname, tablename):
    r = await pool.getTablePrimaryKey(dbname, tablename)
    print(dbname, tablename, 'primary key=', r)
Exemplo n.º 9
0
class DBCrud(RestEndpoint):
    def __init__(self, request, dbname, tablename, id=None):
        super().__init__()
        self.dbname = dbname
        self.tablename = tablename
        self.request = request
        self.db = DBPools()
        self.id = id

    async def options(self) -> Response:
        try:
            with self.db.sqlorContext(self.dbname) as sor:
                d = await sor.I(self.tablename)
                return json_response(Success(d))
        except Exception as e:
            print(e)
            traceback.print_exc()
            return json_response(
                Error(errno='metaerror', msg='get metadata 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 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 put(self):
        """
		update data
		"""
        try:
            ns = multiDict2Dict(await self.request.post())
            with self.db.sqlorContext(self.dbname) as sor:
                d = await sor.U(self.tablename, ns)
                return json_response(Success(' '))
        except Exception as e:
            print(e)
            traceback.print_exc()
            return json_response(
                Error(errno='update error', msg='update 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'))
Exemplo n.º 10
0
	def __init__(self,db,encryptKey):
		super(DatabaseAC,self).__init__()
		self.db = db
		self.pool = DBPools()
		self.encryptKey = encryptKey
		self.rc4 = RC4(encryptKey)
Exemplo n.º 11
0
	def addRolePermission(self,roleid,permid):
		crud = _CRUD(self,db,'ac_rolepermission')
		ns = {
			"rp_id":getID(),
			"role_id":roleid,
			"perm_id":permid
		}
		crud.C(ns)
		return ns
		
if __name__ == '__main__':
	from appPublic.jsonConfig import getConfig
	from sqlor.dbpools import DBPools
	p = 'd:/run'
	conf = getConfig(p)
	DBPools(conf.databases)
	ac = DatabaseAC('metadb',conf.encryptkey)
	#ns1 = ac.addUser('root','根用户','ymq123')
	#ns2 = ac.addRole('superuser')
	#ns3 = ac.addUserRole(ns1['user_id'],ns2['role_id'])
	ups = [
		['root','ymq123'],
		['root','YYYY'],
		['rrrr','ymq123']
	]
	rc4_1 = RC4(conf.encryptkey)
	rc4_2 = RC4(conf.encryptkey)
	for a in ups:
		#print(a[1],rc4_1.encode(a[1])==rc4_2.encode(a[1]))
		print(a[0],a[1],ac.checkPassword(a[0],a[1]))