用原生sql操作:
在sql_util.py中:
#导包
import pymysql
class SQLTool:
def __init__(self, user, pwd, host, port, db):
self.client = pymysql.connect(
user=user,
password=pwd,
host=host,
port=port,
database=db
)
# 一个连接数据库对象
# print(self.client)
# 一个游标对象
self.cursor = self.client.cursor()
# print(self.cursor)
# def query(self, sql):
# self.cursor.execute(sql)
# # 返回一个元祖套元祖的格式
# ((2, '震惊1下课不可能', '假设这里有料1', '军事'), (3, '震惊2下课不可能', '假设这里有料2',
# return self.cursor.fetchall()
def query(self, sql):
# 调用原生sql语句
self.cursor.execute(sql)
aaa = self.fetch_all_to_dict(self.cursor)
return aaa
def fetch_all_to_dict(self, cursor):
# 返回每个字段的属性(('id', 3, None, 11, 11, 0, False), ('title', 253, None, 120, 120, 0, True),)
print(cursor.description)
# 提取出id、title等
desc = [i[0] for i in cursor.description]
# 将desc和对应的col组合多个字典
# 返回[{'content': '假设这里有料1', 'title': '震惊1下课不可能', 'id': 2, 'type': '军事'},
# {'content': '假设这里有料2', 'title': '震惊2下课不可能', 'id': 3, 'type': '军事'},
result = [dict(zip(desc, col)) for col in cursor.fetchall()]
return result
在apis_v1中:
class Test(Resource):
def get(self):
from .sql_util import SQLTool
# 调用SQLTool这个类
tool = SQLTool(
"shao",
"1111",
"127.0.0.1",
3306,
"flask_day05_2"
)
# print(tool)
# 原生sql语句
sql = "select * from news;"
# 调用类里的方法
res = tool.query(sql)
print(res)
return "ok"