def _key_by_table(db, table, cursor): db = db._config db_table = '%s@%s:%s.%s' % (db['user'], db['host'], db['port'], table) key = [db_table] if cursor.description: for i in cursor.description: key.append('%s:%s' % (i[0], i[1])) key = ' '.join(key) keyd = md5(key).digest() mckey = DB.fetch0('SELECT id FROM ZwebOrmTableMcKey where `md5`=%s', keyd) if not mckey: id = DB.insert_id('ZwebOrmTableMcKey', md5=keyd, database=db['db'], time=int(time())) mckey = MC_KEYER.encode(id) return str(mckey)
def _key_by_table(db, table, cursor): db = db._config db_table = '%s@%s:%s.%s'%(db['user'], db['host'], db['port'] , table) key = [ db_table ] if cursor.description: for i in cursor.description: key.append('%s:%s'%(i[0], i[1])) key = ' '.join(key) keyd = md5(key).digest() mckey = DB.fetch0('SELECT id FROM ZwebOrmTableMcKey where `md5`=%s', keyd) if not mckey: id = DB.insert_id( 'ZwebOrmTableMcKey', md5=keyd, database=db['db'], time=int(time()) ) mckey = MC_KEYER.encode(id) return str(mckey)
def __new__(cls, name, bases, attrs): base0 = bases[0] if base0 is object: return super(_Model, cls).__new__(cls, name, bases, attrs) new_class = type.__new__(cls, name, bases, attrs) new_class.__table__ = table = name new_class.__db__ = db = DB.db(table) q = Query.execute('SELECT * FROM %s LIMIT 1' % name, (), db) new_class.__column__ = column = map(itemgetter0, q.description) if base0 is ModelMc: new_class.__key__ = '%s&%%s' % (_key_by_table(db, name, q).replace( '%', '%%')) return new_class
def __new__(cls, name, bases, attrs): base0 = bases[0] if base0 is object: return super(_Model, cls).__new__(cls, name, bases, attrs) new_class = type.__new__(cls, name, bases, attrs) new_class.__table__ = table = name new_class.__db__ = db = DB.db(table) q = Query.execute('SELECT * FROM %s LIMIT 1' % name, (), db) new_class.__column__ = column = map(itemgetter0, q.description) if base0 is ModelMc: new_class.__key__ = '%s&%%s'%(_key_by_table( db, name, q ).replace('%', '%%')) return new_class
def _commit(cls): db = cls.__db__ DB.commit()
from z42.web.memcache import mc from _db import DB try: from msgpack import packb, unpackb except: from marshal import dumps as packb, loads as unpackb from time import time from array import array from hashlib import md5 from intstr import IntStr MC_KEYER = IntStr( '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_' ) if not DB.execute(""" select count(TABLE_NAME) from `INFORMATION_SCHEMA`.`TABLES` where `TABLE_NAME`='ZwebOrmTableMcKey' """).fetchone()[0]: DB.execute(''' CREATE TABLE IF NOT EXISTS `ZwebOrmTableMcKey` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `md5` binary(16) NOT NULL, `table` varchar(128) NOT NULL, `time` bigint(20) unsigned NOT NULL, `database` varchar(128) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `md5` (`md5`) USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ''') def _key_by_table(db, table, cursor):
from z42.web.memcache import mc from _db import DB try: from msgpack import packb, unpackb except: from marshal import dumps as packb, loads as unpackb from time import time from array import array from hashlib import md5 from intstr import IntStr MC_KEYER = IntStr( '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_') if not DB.execute( """ select count(TABLE_NAME) from `INFORMATION_SCHEMA`.`TABLES` where `TABLE_NAME`='ZwebOrmTableMcKey' """ ).fetchone()[0]: DB.execute(''' CREATE TABLE IF NOT EXISTS `ZwebOrmTableMcKey` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `md5` binary(16) NOT NULL, `table` varchar(128) NOT NULL, `time` bigint(20) unsigned NOT NULL, `database` varchar(128) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `md5` (`md5`) USING BTREE ) ENGINE=MyISAM DEFAULT CHARSET=utf8; ''') def _key_by_table(db, table, cursor):