示例#1
0
文件: kv.py 项目: cheshang/cheshang
 def save(self, value):
     table = self.table
     cursor = self.cursor
     cursor.execute("INSERT INTO %s (value) VALUES (%%s) " % table, value)
     print cursor._last_executed
     id = cursor.lastrowid
     mc.set(self.prefix % id, value)
     return id
示例#2
0
 def get(self, id):
     mc_key = self.prefix % id
     value = mc.get(mc_key)
     if value is None:
         r = db.get("select value from %s where id=%%s" % self.table_name, id)
         if r:
             value = r.value
             mc.set(mc_key, value)
     return value
示例#3
0
 def id_by_value(self, value):
     _hash = hashlib.md5(value).hexdigest()
     mc_key = self.prefix % _hash
     id = mc.get(mc_key)
     if id is None:
         r = db.get('select id from %s where value=%%s' % self.table_name, value)
         if r:
             id = r.id
             mc.set(mc_key, id)
     return id
示例#4
0
文件: kv.py 项目: cheshang/cheshang
 def get(self, id):
     mc_key = self.prefix % id
     r = mc.get(mc_key)
     if r is None:
         cursor = self.cursor
         cursor.execute("SELECT value FROM %s WHERE id=%s" % (self.table, id))
         print cursor._last_executed
         r = cursor.fetchone()
         if r:
             r = r[0]
         if r is None:
             r = self.NULL
         mc.set(mc_key, r)
     return r
示例#5
0
文件: kv.py 项目: cheshang/cheshang
    def id_by_value(self, value):
        mc_key = hashlib.md5(self.prefix_v % value).hexdigest()
        r = mc.get(mc_key)

        if r is None:
            cursor = self.cursor
            cursor.execute('SELECT id FROM %s WHERE value="%s"' % (self.table, value))
            print cursor._last_executed
            r = cursor.fetchone()
            if r:
                r = r[0]
                mc.set(mc_key, r)
            else:
                r = 0
        return r
示例#6
0
文件: kv.py 项目: cheshang/cheshang
 def set(self, id, value):
     r = self.get(id)
     if r != value:
         table = self.table
         cursor = self.cursor
         cursor.execute(
             "INSERT INTO %s (id,value) VALUES (%%s,%%s) on duplicate key UPDATE value=%%s" % table,
             (id, value, value),
         )
         print cursor._last_executed
         # cursor.connection.commit()
         if value is None:
             value = False
         mc_key = self.prefix % id
         mc.set(mc_key, value)
示例#7
0
文件: orm.py 项目: cheshang/cheshang
 def get(cls, id=None, **kwargs):
     if id is None:
         if not kwargs:
             return
     data = None
     if id:
         id = str(id)
         kwargs['id'] = id
         mc_key = cls.MC_KEY % id
         data = mc.get(mc_key)
         if data:
             data = unpackb(data)
             return cls._data_to_obj(data)
     cur = connection.cursor()
     values = ['='.join((k, '"%s"' % v)) for k, v in kwargs.iteritems()]
     sql = 'SELECT * FROM %s WHERE '+' and '.join(values)+' LIMIT 1'
     cur.execute(sql % cls.__table__)
     data = cur.fetchone()
     print cur._last_executed
     if id or data:
         _id = data[0] if data else id
         mc_key = cls.MC_KEY % _id
         mc.set(mc_key, packb(data))
     return cls._data_to_obj(data)
示例#8
0
 def save(self, value):
     id = db.execute_lastrowid("INSERT INTO %s (value) VALUES (%%s)" % self.table_name, value)
     mc_key = self.prefix % id
     mc.set(mc_key, value)
     return id