python 连接 MYSQL 获取数据

本贴最后更新于 945 天前,其中的信息可能已经时移俗易

详解:mysql操作

  1. 安装pymysql
  2. 概念
    1、数据库连接
    2、游标
  3. 操作方法
    执行sql语句
    cur.execute(sql)
获取sql查询的数据

result = cur.fetchall()

返回查询到的第一条数据

result = cur.fetchone()

返回自定义数据条数

result = cur.fetchmany(2)

整体操作代码如下:

#先在cmd中安装pymysql包

pip install pymysql

import pymysql #导入pymysql包

#连接数据库

conn = pymysql.connect(
host="192.168.1.172", #主机
user="root", #数据库用户名
password="123456", #数据库密码
port=33061, #数据库端口号
db="***", #数据库名称
charset="utf8", #编码集
autocommit=True, #设置自动提交
#设置返回值为字典,(字典嵌套在list中返回,一行数据为一个字典)
cursorclass=pymysql.cursors.DictCursor, #默认返回元组类型
)
cur = conn.cursor() #实例化游标
sql = "SELECT * FROM api_book" #查询sql

cur.execute(sql) #执行sql语句

result = cur.fetchall() #获取sql查询的数据

#result = cur.fetchone() #返回查询到的第一条数据

#result = cur.fetchmany(2) #返回自定义数据条数,目前是是返回2条

print(result)

#conn.commit() #手动提交,修改的时候才需要提交,也可以设置自动提交autocommit=True,(上面设置了自动提交,所以这一条可以注释掉)

cur.close() #关闭游标
conn.close() #关闭数据库连接

数据库封装

from setting import mysql_info #在setting文件里面设置好了数据库相关信息

具体代码如下:
from setting import mysql_info

import pymysql

class HandleMysql:
    def __init__(self):
        self.conn = pymysql.connect(
                        host=mysql_info["host"],
                        user=mysql_info["user"],
                        password=mysql_info["password"],
                        port=mysql_info["port"],
                        db=mysql_info["db"],
                        charset=mysql_info["charset"],
                        autocommit=True, #设置自动提交
                        #设置返回值为字典,(字典嵌套在list中返回,一行数据为一个字典)
                        cursorclass=pymysql.cursors.DictCursor, #默认返回元组类型
                        )
        self.cur =  self.conn.cursor()

    def get_data(self,sql):
        self.cur.execute(sql)
        datas = self.cur.fetchall()
        self.__close_mysql()
        return datas


    def __close_mysql(self):
        self.cur.close()
        self.conn.close()


if __name__ == '__main__':
    sql = "SELECT  * FROM students"
    cl = HandleMysql()
    result = cl.get_data(sql)
    print(result)
1 操作
13720245816 在 2022-04-15 14:50:31 更新了该帖
回帖
请输入回帖内容 ...