Django 执行sql语句

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)


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值