Flask学习(七):pymysql链接数据库

2024-04-10 1116阅读

温馨提示:这篇文章已超过386天没有更新,请注意相关的内容是否还可用!

1、pymysql链接数据库相关参数: conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='root', db='smbms')

Flask学习(七):pymysql链接数据库
(图片来源网络,侵删)
Python
def __init__(
    self,
    *,
    user=None, 
    password="", 
    host=None, 
    database=None, 
    unix_socket=None,
    port=0,
    charset="",
    collation=None,
    sql_mode=None,
    read_default_file=None,
    conv=None,
    use_unicode=True,
    client_flag=0,
    cursorclass=Cursor,
    init_command=None,
    connect_timeout=10,
    read_default_group=None,
    autocommit=False,
    local_infile=False,
    max_allowed_packet=16 * 1024 * 1024,
    defer_connect=False,
    auth_plugin_map=None,
    read_timeout=None,
    write_timeout=None,
    bind_address=None,
    binary_prefix=False,
    program_name=None,
    server_public_key=None,
    ssl=None,
    ssl_ca=None,
    ssl_cert=None,
    ssl_disabled=None,
    ssl_key=None,
    ssl_verify_cert=None,
    ssl_verify_identity=None,
    compress=None,  # not supported
    named_pipe=None,  # not supported
    passwd=None,  # deprecated
    db=None,  # deprecated
):

参数说明:

  • host- 数据库服务器所在的主机

  • user- 登录的用户名

  • password- 要使用的密码。

  • database - 要使用的数据库,None不使用特定的数据库。

  • port - 要使用的MySQL端口,默认通常都可以。(默认值:3306)

  • bind_address- 当客户端具有多个网络接口时,请指定从中连接到主机的接口。参数可以是主机名或IP地址。

  • unix_socket- 您可以选择使用unix套接字而不是TCP / IP。

  • read_timeout- 以秒为单位读取连接的超时(默认值:无 - 无超时)

  • write_timeout - 以秒为单位写入连接的超时(默认值:无 - 无超时)

  • charset- 你要使用的Charset。

  • sql_mode- 要使用的默认SQL_MODE。

  • read_default_file- 指定my.cnf文件以从[client]部分下读取这些参数。

  • conv - 使用转换字典而不是默认字典。这用于提供类型的自定义编组和解组。见转换器。

  • use_unicode- 是否默认为unicode字符串。对于Py3k,此选项默认为true。

  • client_flag- 要发送给MySQL的自定义标志。在constants.CLIENT中查找潜在值。

  • cursorclass- 要使用的自定义游标类。

  • init_command- 建立连接时要运行的初始SQL语句。

  • connect_timeout- 连接时抛出异常之前的超时。(默认值:10,最小值:1,最大值:31536000)

  • ssl- 类似于mysql_ssl_set()参数的参数的dict。

  • read_default_group- 要在配置文件中读取的组。

  • named_pipe- 不支持

  • autocommit- 自动提交模式。无表示使用服务器默认值。(默认值:False)

  • local_infile - 允许使用LOAD DATA LOCAL命令的布尔值。(默认值:False)

  • max_allowed_packet- 发送到服务器的最大数据包大小(以字节为单位)。(默认值:16MB)仅用于限制小于默认值(16KB)的LOAD LOCAL INFILE数据包的大小。

  • defer_connect- 不要在构造上显式连接 - 等待连接调用。(默认值:False)

  • auth_plugin_map- 插件名称的一个字典,用于处理该插件的类。该类将Connection对象作为构造函数的参数。该类需要一个认证方法,将认证包作为参数。对于对话框插件,可以使用提示(echo,prompt)方法(如果没有authenticate方法)从用户返回字符串。(实验)

  • server_public_key - SHA256身份验证插件公钥值。(默认:无)

  • db- 数据库的别名。(与MySQLdb兼容)

  • passwd- 密码的别名。(与MySQLdb兼容)

  • binary_prefix- 在字节和bytearray上添加_binary前缀。(默认值:False)

    2、相关方法:

    • begin()开始事物。

    • close()发送退出消息并关闭套接字。请参阅 规范中的Connection.close()​

    • commit()​提交更改为稳定存储。请参阅 规范中的Connection.commit()​

    • cursor(cursor = None)创建一个新游标以执行查询。常用的游标类型如下:

      • Cursor:使用此游标类,返回结果为元组类型。

      • DictCursor:使用此游标类,返回结果为字典类型。

      • SSCursor:使用此游标类,返回结果为元组类型。不缓存结果,适合处理大量数据,但对于内存敏感的应用,对性能的影响较大。

      • SSDictCursor:使用此游标类,返回结果为字典类型。不缓存结果,适合处理大量数据,但对于内存敏感的应用,对性能的影响较大。

        • 其中, Cursor 和 DictCursor 是最常用的两种游标类。

        • 使用 Cursor 游标类,返回的结果为元组类型,每个元组表示一行数据;

        • 使用 DictCursor 游标类,返回结果为字典类型,以字典的形式表示每行数据,字典的键是列名,值是对应的值。

        • SSCursor 和 SSDictCursor 则是无缓存的游标类,适合处理大量数据,但对内存敏感的应用不友好,也不支持fetchmany() 和 scroll() 方法。

      • open如果连接打开,则返回​True​

      • ping(reconnect = True)​检查服务器是否处于活动状态。参数:重新连接 - 如果连接已关闭,请重新连接。rollback() ​回滚当前事务。请参阅 规范中的Connection.rollback()。

      • select_db(db )​设置当前数据库。参数:db - 数据库的名称。

      • show_warnings()​发送SHOW WARNINGS​SQL命令。

        3、代码如下所示:

        Python
        import pymysql
        ​
        def getInfo():
            # 创建sql链接
            conn = pymysql.connect(host='127.0.0.1', port=3306, user='root', password='root', db='smbms')
            # 创建游标 返回数据为元组形式
            cursor = conn.cursor(pymysql.cursors.DictCursor)
            # 执行sql语句
            cursor.execute('select * from smbms_user')
            # 返回所有数据
            rows = cursor.fetchall()
            # 返回一行数据
            row = cursor.fetchone()
            # 提交事务
            conn.commit()
            # 关闭资源
            cursor.close()
            conn.close()
            print(rows)
            print(row)if __name__ == "__main__":
            getInfo()
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]