你的第一份Python库源码阅读reco

基本介绍records是kennethreitz的forHumans系列,使用原生sql去操作大多数的关系型数据库(Postgresql,MySQL,SQLite,Oracle和MS-SQL),并且支持多种格式输出,如csv、excel、json等。代码不超过行,如果是第一次尝试阅读python开源项目,这是一个很好的选择。作者Kennethreitz是requests的作者,python领域的大牛人物之一,关于他还有一个励志的故事[KennethReitz的逆袭之路]使用方法records库的使用非常简单且人性化,定义数据库连接串和sql语句,然后将返回值作为rows打印出来,或者输出为文件,没有复杂的orm逻辑,实现逻辑很清晰依赖库records有一些pip依赖,每个依赖项的作用如下:源码分析工具建议的源码分析工具:pycharm3.x(运行调试)+SourceInsight4.0(展示类/变量/方法结构图)Sourceinsight是一款很不错的阅读源码的工具,支持很多语言,有些人说好像3版本默认不支持python,需要配置,我下载的SourceInsight4.0,没这个问题,打开就可以用。代码结构Database类:封装基本数据库操作,主要使用query方法,调用SQLAlchemy的方法,获取结果后调用Record类获得Record生成器,再调用RecordCollection获得所有的结果Record类:接收database查询后的keys和rows,初始化时,检测是否长度一致,然后对其包装,使其支持迭代,支持直接to_dict转为dict对象,支持直接export导出。RecordCollection类:部分方法和Record类相同,但RecordCollection实现了first方法,获取第一个row,如果不存在,则默认default为none,如果defalut本身就是实例或者exception的子类,直接抛出异常,另外,实现了一次实例化后多次查询时的缓存。全局变量和方法:基础概念:基础概念:测试DEMO


转载请注明:http://www.aierlanlan.com/cyrz/7934.html