Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
146 lines (109 loc) · 2.43 KB

File metadata and controls

146 lines (109 loc) · 2.43 KB
Copy raw file
Download raw file
Outline
Edit and raw actions

MysqlDB

MysqlDB具有断开自动重连特性,支持多线程下操作,内置连接池,最大连接数100

连接

from feapder.db.mysqldb import MysqlDB


db = MysqlDB(
    ip="localhost", port=3306, db="feapder", user_name="feapder", user_pass="feapder123"
)

若环境变量中配置了数据库连接方式或者setting中已配置,则可不传参

db = MysqlDB()

或者可以根据url连接

db = MysqlDB.from_url("mysql://username:password@ip:port/db?charset=utf8mb4")

方法

MysqlDB封装了增删改查等方法,方便使用

def find(self, sql, limit=0, to_json=False):
    """
    @summary:
    无数据: 返回()
    有数据: 若limit == 1 则返回 (data1, data2)
            否则返回 ((data1, data2),)
    ---------
    @param sql:
    @param limit:
    @param to_json 是否将查询结果转为json
    ---------
    @result:
    """

def add(self, sql, exception_callfunc=None):
    """
    Args:
        sql:
        exception_callfunc: 异常回调

    Returns:添加行数

    """
def add_smart(self, table, data: Dict, **kwargs):
    """
    添加数据, 直接传递json格式的数据,不用拼sql
    Args:
        table: 表名
        data: 字典 {"xxx":"xxx"}
        **kwargs:

    Returns:添加行数

    """
def add_batch(self, sql, datas: List[Dict]):
    """
    @summary: 批量添加数据
    ---------
    @ param sql: insert ignore into (xxx, xxx) values (%s, %s, %s)
    @ param datas: 列表 [{}, {}, {}]
    ---------
    @result:添加行数
    """
def add_batch_smart(self, table, datas: List[Dict], **kwargs):
    """
    批量添加数据, 直接传递list格式的数据,不用拼sql
    Args:
        table: 表名
        datas: 列表 [{}, {}, {}]
        **kwargs:

    Returns: 添加行数

    """

更新

def update(self, sql):
    pass
def update_smart(self, table, data: Dict, condition):
    """
    更新, 不用拼sql
    Args:
        table: 表名 
        data: 数据 {"xxx":"xxx"}
        condition: 更新条件 where后面的条件,如 condition='status=1'

    Returns: True / False
    
    """

删除

def delete(self, sql):
    """
    删除
    Args:
        sql: 

    Returns: True / False

    """

执行其他sql

def execute(self, sql):
    pass
Morty Proxy This is a proxified and sanitized view of the page, visit original site.