Ejemplo n.º 1
0
 def upsert(self, t: _transaction = None, *update_fields):
     _valid_fields = self.get_valid_fields(for_save=True)
     if not update_fields:
         update_fields = list(_valid_fields.keys())
     sql = self.__META__.get_upsert_sql_tpl().format(
         update_fields=', '.join('{field}=%({field})s'.format(field=field)
                                 for field in update_fields))
     param = _valid_fields
     mydb = MyDBApi(config=self._get_db_conf(), t=t)
     return mydb.insert_one(sql, param)
Ejemplo n.º 2
0
    def create(cls, sql: SQL = None, t: _transaction = None):
        """

        :param sql:
        :param t:
        :return:
        """
        cls._check_meta()
        mydb = MyDBApi(config=cls._get_db_conf(), t=t)
        return mydb.insert_one(sql.sql)
Ejemplo n.º 3
0
    def update(self, t: _transaction = None, **filters):
        """
        使用当前对象的值去更新数据库记录
        :param t:
        :param filters: 当filters参数非空,函数表示用当前的值去更新所有符合filter条件的数据
        :return:
        """

        if not filters:
            filters = self.pk_fields
        sql_obj = self._update_sql
        sql = sql_obj.sql
        param = sql_obj.param
        parsed = parse(**filters)
        param.update(parsed['param'])
        sql = sql.format(filter=parsed['filter'])
        mydb = MyDBApi(config=self._get_db_conf(), t=t)
        return mydb.insert_one(sql, param)
Ejemplo n.º 4
0
 def insert(self, t: _transaction = None):
     mydb = MyDBApi(config=self._get_db_conf(), t=t)
     sql_obj = self._insert_sql
     return mydb.insert_one(sql_obj.sql, param=sql_obj.param)