Flask---用原生sql操作:

13 篇文章 0 订阅

用原生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"
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值