`
crazier9527
  • 浏览: 995615 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Python写的数据抽象层

阅读更多

python本身没有对mysql的支持,得依赖附加的库 http://mysql-python.sourceforge.net 。很多框架采用了这个库,比如adodb,django等。不过我倾向于自己写这些东西,所以小研究了一下。 mysql-python 有两个对象 MySQLdb _mysql 这里是介绍http://mysql-python.sourceforge.net/MySQLdb.html,我使用的是 MySQLdb 对象

 

#!/D:\python25\python.exe
import MySQLdb
 
class Mysql(object):
    handle = ''
    query = ''
    exectime = 0
    effected = 0
 
    def __init__( self , hostname , username , password , database ):
        db = MySQLdb.connect( host = hostname , user = username , passwd = password , db = database )
        self.handle = db.cursor()
        
    def query( self , sql = '' ):
        return self.handle.execute( sql )
 
    def fetch( self , sql = '' ):
        self.handle.execute( sql )
        rs = self.handle.fetchone()
        count = 0
        result = {}
        for colnum in self.handle.description:
            result[colnum[0]] = rs[count]
            count += 1
        return result
    
    def fetchAll( self , sql = '' ):
        self.handle.execute( sql )
        result = {}
        bigcount = 0
        for recordline in self.handle.fetchall():
            littlecount = 0
            result[bigcount] = {}
            for colnum in self.handle.description:
                result[bigcount][colnum[0]] = recordline[littlecount]
                littlecount += 1
            bigcount += 1
        return result
 
    def insertID( self ):
          self.handle.execute("SELECT LAST_INSERT_ID() AS lid")
          rs = self.handle.fetchone()
          return rs[0]
 
    def close( self ):
          self.handle.close()
          pass
#DEMO
db = Mysql('localhost','root','123456','frame')
db.fetchAll('select * from user')
#rs = db.fetchAll('select * from user')
#sql = "INSERT INTO tags (module,fid,name,note,`order`) VALUE ('test',1,'fd','ds',1)"
#db.query(sql)
#print db.insertID()

 

分享到:
评论
2 楼 crazier9527 2009-05-19  
有待改进
1 楼 phyeas 2009-05-19  

泼下冷水,抽象程度好像还不够……

相关推荐

    Python中的硬件抽象,重点是EPICS_python_代码_下载

    它提供了一个抽象层,使实验编排和数据采集代码能够在特定设备和控制系统的细节之上运行。 Ophyd 通常与Bluesky Run Engine一起用于实验编排和数据采集。它有时也以独立的方式使用。 许多设施使用ophyd 与使用...

    pydal:纯Python数据库抽象层

    pyDAL是纯Python数据库抽象层。 它使用数据库后端的指定方言实时动态生成SQL / noSQL,因此您不必编写SQL代码或学习其他SQL方言(通常使用术语SQL),并且您的代码可在不同语言之间移植。数据库类型。 pyDAL来自...

    Python基础教程(第3版)中文版pdf(清晰版,带目录)

    本书是经典的Python入门教程,层次鲜明、结构严谨、内容翔实,特别是后面几章,作者将前面讲述的内容应用到10个引人入胜的项目中,并以模板的形式介绍了项目的开发过程,手把手教授Python编程实践,让读者从项目中...

    python基础教程pdf.docx

    此后探讨了如何将Python与数据 库、网络、C语言等工具结合使用,从而发挥出Python的强大功能, 同时介绍了 Python程序测试、打包、发布等知识。最后,作者结合 前面讲述的内容,按照实际项目开发的步骤向读者介绍了几...

    python源码剖析(样章)

    器中,箭头的方向指示了 Python 运行时的数据流方向。其中 Scanner 对应词法 分析,将文件输入的 Python 源代码或从命令行输入的一行行 Python 代码切分为 一个一个的 token;Parser 对应语法分析部分,在 Scanner ...

    matlab导入excel代码-Data-Visualization-with-Python:使用Python进行数据可视化

    后端层:它具有3个内置的抽象接口类。 图形画布:包含图形所在的区域。 渲染器:知道如何在图形画布上绘制。 事件:处理用户输入,例如键盘拨动和鼠标单击。 艺术家层:由一个主要对象艺术家组成。 有两种类型的艺术...

    虚拟OLT硬件抽象_python_代码_下载

    Voltha 旨在在传统和下一代接入网络设备之上提供一个抽象层,用于控制和管理。它最初的重点是 PON(GPON、EPON、NG PON 2),但它的目标是超越以最终涵盖其他接入技术(xDSL、Docsis、G.FAST、专用以太网、固定无线...

    17.Twisted的抽象层.zip

    Python爬虫库的介绍 数据抓取与解析 HTML解析与XPath、CSS选择器的应用 JSON和XML数据的解析 动态网页爬取技术(如使用Selenium等) 反爬机制与应对策略 反爬机制的类型和常见手段 User-Agent设置和IP代理的应用 ...

    具有多供应商支持的网络自动化和可编程性抽象层-Python开发

    NAPALM NAPALM(具有多供应商支持的网络自动化和可编程性抽象层)是一个Python库,该库实现了一组功能,以使用统一的API与不同的路由器供应商设备进行交互。 NAP NAPALM NAPALM(具有多供应商支持的网络自动化和可...

    【Python毕业设计】-基于卷积神经网络人脸识别驾驶员疲劳检测与预警系统设计源码+数据集+项目介绍 .zip文件

    基于Python的卷积神经网络人脸识别驾驶员疲劳检测与预警系统是一种利用深度学习技术来监测驾驶员疲劳状态的系统。该系统通过分析驾驶员的眼睛和面部特征,能够准确地识别出疲劳驾驶行为,及时发出警告以避免潜在的...

    优雅中国风Android读诗词App,支持注册登录,数据云端同步,离线数据存储和截屏

    一款优雅的中国风Android App,包括Android端和Server端,支持登录注册,数据云端同步,离线数据存储和截屏分享等功能。...- db层:该层将所有数据库操作封装起来,执行db操作,并对外提供抽象的数据处理接口。

    fugue:分布式计算和机器学习的抽象层。 Fugue 移植 SQL、Python 和 Pandas 代码以在 Spark 和 Dask 上运行

    Fugue 是一个纯抽象层,它使 Python 和 SQL 代码可以跨不同的计算框架(如 Pandas、Spark 和 Dask)移植。 与框架无关的代码:在本机 Python 或 SQL 中编写一次代码。 Fugue 使其可以在 Pandas、Dask 或 Spark 上...

    adodb510数据库抽象库

    ADODB的是一个PHP数据库抽象库,目前还有...很多的知名网站如ACID, Zikula/PostNuke,Xaraya, phpWiki, Mambo, PHP GACL, TikiWiki, eGroupWare and phpLens都使用了ADODB抽象层来操作数据库,足月看出ADODB非常受欢迎。

    Python socket 套接字实现通信详解

    1. socket 在操作系统中它是处于应用层与传输层的抽象层,它是一组操作起来非常简单的接口(接收数据的),此接口接受数据之后交个操作系统 那么为什么?直接给操作系统不是更方便吗?那么你就想错了 因为操作系统的接口...

    高光谱遥感影像分类,机器学习分类,MLP算法,Salinas数据集

    MLP算法是一种基于神经网络的分类算法,其通过多层神经元对特征进行抽象和表达,从而实现高效的分类。在该算法中,使用了反向传播算法对网络进行训练,以便调整网络中的权重和偏置,从而提高分类的准确性。

    Deep_Learning_with_Python_Keras PDF高清版

    深度学习的概念源于人工神经网络的研究。含多隐层的多层感知器就是一种深度学习结构。深度学习通过组合低层特征形成更加抽象的高层表示属性类别或特征,以发现数据的分布式特征表示。

    GitPython是用于与Git存储库进行交互的python库。-Python开发

    它提供了git对象的抽象以方便访问存储库数据,并且添加了GitPython GitPython是一个python库,用于与git存储库进行交互,高层如git-porcelain或低层如git-plumbing。 它提供了git对象的抽象,以便轻松访问存储库数据...

    webtraversallibrary:Web遍历库(WTL)是一个Python库,用于在诸如Selenium之类的基本执行层之上抽象Web交互。

    网络遍历库Web遍历库(WTL)是一个Python库,用于在诸如Selenium之类的基本执行层之上抽象Web交互。安装运行pip install webtraversallibrary 。 就是这样。用法示例词汇表您将在API文档中找到更多信息。 作为高级...

    网络套接字PYTHON资源_pythonsocket_网络_

    套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。套接字允许应用程序将I/O插入到网络中,并与网络中的其他应用程序进行通信。网络套接字是IP...

    Python之Pandas知识点

    SciPy:科学计算库,有一些高阶抽象和物理模型,在NumPy基础上,封装了一层,没有那么纯数学,提供方法直接计算结果;比如:做个傅立叶变换,这是纯数学的,用Numpy;做个滤波器,这属于信号处理模型了,用Scipy。...

Global site tag (gtag.js) - Google Analytics