zoukankan      html  css  js  c++  java
  • django之原生SQL操作封装

    公司的产品使用原生SQL,封装一个类,用于调用

    # import pymysql
    # 使用MySQL原生语句
    from django.db import connection
    import pymysql
    class Exsql():
        '''
        配合django 内置的数据库操作函数使用
        '''
        def __init__(self):
            pass
            
        def get_one(self,sql):
            res=None
            try:
                with connection.cursor() as cursor:
                    cursor.execute(sql)#需要先执行
                    res=cursor.fetchone()
            except Exception as e:
                res={'code':1,'error':e}
            return res
        def get_one_dict(self,sql):
            res=None
            try:
                 with connection.cursor() as cursor:
                    cursor.execute(sql)#需要先执行
                    desc = cursor.description
                    res=[
                    dict(zip([col[0] for col in desc], cursor.fetchone()))]
            except Exception as e:
                res={'code':1,'error':e}
            return res
        
        def get_all(self,sql):
            res=None
            try:
                with connection.cursor() as cursor:
                    cursor.execute(sql)#需要先执行
                    res=cursor.fetchall() 
            except Exception as e:
                res={'code':1,'error':e}
                
            return res
        def get_all_dict(self,sql):
            res=[]
            try:
                with connection.cursor() as cursor:
                    cursor.execute(sql)#需要先执行
                    desc = cursor.description
                    res=[
                    dict(zip([col[0] for col in desc], row))
                        for row in cursor.fetchall()
                    ]
                
            except Exception as e:
                res={'code':1,'error':e}    
            return res
        
        def insert(self,sql):
            return self.__edit(sql)
        def update(self,sql):
            return self.__edit(sql)
        def delete(self,sql):
            return self.__edit(sql)
        
        def __edit(self,sql):
            count=0
            cursor=connection.cursor()
            try:
                count=cursor.execute(sql)
            except Exception as e:
                res={'code':1,'error':e}
                cursor.rollback()
            finally:
                cursor.close()
                
            return count
    

      

  • 相关阅读:
    .NET/C# 使用 SetWindowsHookEx 监听鼠标或键盘消息以及此方法的坑
    使用UI Automation实现自动化测试--1-4
    使用npm命令下载sass时出现Error: not found: python2
    CentOS上安装Python3
    解决electron打包时,下载超时导致失败
    FJ省队集训2021
    微信小程序自定义封装组件-showModal
    react性能优化
    认识react虚拟Dom
    前端FileReader读取文件信息
  • 原文地址:https://www.cnblogs.com/Mengchangxin/p/12161381.html
Copyright © 2011-2022 走看看