import pymysql
from django.db import connection
def fetchall_to_dict(sql, params=None, db='default'):
"""
返回全部数据
:param sql: sql语句
:param params: sql语句参数
:param db: Django数据库名
:return: 例如:[{"id": id, "username": 'username', "first_name": 'first_name'}]
"""
if db == 'default':
cursor = connection.cursor()
else:
db = MysqlDbConnect(db).get_db()
cursor = db.cursor()
cursor.execute(sql, params)
desc = cursor.description
object_list = [
dict(zip([col[0] for col in desc], row))
for row in cursor.fetchall()
]
cursor.close()
return object_list
class MysqlDbConnect:
def __init__(self, data):
self.data = data
def get_db(self):
db_ = pymysql.connect(
user=self.data["user"],
db=self.data["db"],
passwd=self.data["passwd"],
host=self.data["host"],
port=self.data["port"],
charset='utf8'
)
return db_
if __name__ == '__main__':
db_ = {
"user": "username",
"passwd": "password",
"db": "db_name",
"host": "192.168.xx.xx",
"port": 3306
}
msg = fetchall_to_dict(sql="select version()", db=db_)
print(msg)