Exemple #1
0
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)
Exemple #3
0
    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):
Exemple #7
0
def _commit(cls):
    db = cls.__db__
    DB.commit()
Exemple #8
0
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):