之前学习java,java中对数据库的操作很多,如Spring Data JPA,Hibernate和mybatisJdbc Template都能够连接上mysql数据库。那么python一定也有方法实现对数据库的连接操作,下面是我的一些整理。

使用Python进行MySQL的库主要有三个:

  • Python-MySQL(更熟悉的名字可能是MySQLdb)
  • PyMySQL
  • SQLAlchemy

Python-MySQL:

资格最老,核心由C语言打造,接口精炼,性能最棒,缺点是环境依赖较多,安装复杂,近两年已停止更新,
只支持Python2,不支持Python3,所以使用会越来越少

PyMySQL:

为替代Python-MySQL而生,纯python打造,
接口与Python-MySQL兼容,安装方便,支持Python3。

SQLAlchemy:

是一个ORM框架,它并不提供底层的数据库操作,
而是要借助于MySQLdb、PyMySQL等第三方库来完成,目前SQLAlchemy在Web编程领域应用广泛。

其中ORM种类有下面几种:

Django’s ORM、peewee、SQLAlchemy

Django’s ORM

优点:易用,学习曲线短和Django紧密集合,用Django时使用约定俗成的方法去操作数据库缺点:QuerySet速度不给力,会逼我用Mysqldb来操作原生sql语句。

Peewee

优点:
Django式的API,使其易用
轻量实现,很容易和任意web框架集成缺点:
不支持自动化 schema 迁移
不能像Django那样,使线上的mysql表结构生成结构化的模型。

SQLAlchemy

优点:
巨牛逼的API,使得代码有健壮性和适应性
灵活的设计,使得能轻松写复杂查询缺点:
工作单元概念不常见
重量级 API,导致长学习曲线

以上就是我通过查询并进行整理的一些python中连接数据库的一些常用的方法,总结起来供大家一同学习。

如果觉得本文对你有帮助,欢迎点赞,欢迎关注我,如果有补充欢迎评论交流,我将努力创作更多更好的文章。

Python数据库及ORM框架对比选择相关推荐

  1. python数据库框架_Python数据库及ORM框架对比选择

    使用Python进行MySQL的库主要有三个: Python-MySQL(更熟悉的名字可能是MySQLdb), PyMySQL SQLAlchemy. Python-MySQL: 资格最老,核心由C语 ...

  2. .Net 常用ORM框架对比:EF Core、FreeSql、SqlSuger

    前言 最近由于工作需要,需要选用一种ORM框架,也因此对EF Core.FreeSql.SqlSuger作简单对比,并各实现了一套相同功能的Api. 个人认为各有有优势,存在即合理,不然早就被淘汰了是 ...

  3. 【Python】六大开源框架对比:Web2py略胜一筹

    Python是一门动态.面向对象语言.其最初就是作为一门面向对象语言设计的,并且在后期又加入了一些更高级的特性.除了语言本身的设计目的之外,Python标准库也是值得大家称赞的,Python甚至还自带 ...

  4. Python的轻量级ORM框架peewee

    作者:小小明 在前面的<改变python对象的黑魔法metaclass>一文中,我介绍了使用metaclass自己编写ORM框架的思路. 地址:https://blog.csdn.net/ ...

  5. js mysql orm_nodejs ORM框架对比

    name star sequelize 19.9k knex 10.5k Bookshelf 5.7k 以上数据截止2019.9.18 sequelize 文档齐全,Star最多. 支持数据库:pos ...

  6. python安装orm_Python ORM框架之 Peewee入门

    之前在学Django时,发现它的模型层非常好用,把对数据库的操作映射成对类.对象的操作,避免了我们直接写在Web项目中SQL语句,当时想,如果这个模型层可以独立出来使用就好了,那我们平台操作数据库也可 ...

  7. 量化实盘框架对比选择

    简介 搞各种回测,最后还是为了实盘赚钱.实盘国内券商支持的比较多的是ptrade和QMT,港美股券商一般会自己提供交易api,可以直接使用,也可以用第三方框架来调用. 实盘框架选择 下面是一些实盘框架 ...

  8. go orm框架对比

    订单系统重构技术选型 针对目前订单系统由PHP系统重构成go系统 orm 技术调研选型 orm gorm xorm 地址 官网 :https://gorm.cn/ github:https://git ...

  9. mysql的字符集和排序规则怎么选择_关于MySQL创建数据库字符集和数据库排序规则的对比选择...

    一.字符集 一般选择utf8.下面介绍一下utf8与utfmb4的区别. utf8mb4兼容utf8,且比utf8能表示更多的字符.至于什么时候用,看你的做什么项目了,unicode编码区从1 - 1 ...

最新文章

  1. 【异常】Container exited with a non-zero exit code 1 Failing this attempt.Stack trace: ExitCodeException
  2. centos7添加运行终端快键键
  3. mysql分库分表备份脚本[转帖]
  4. myeclipse 运行速度慢的解决方案
  5. 从0开始接触html--第一天学习内容总结
  6. kubeadm安装kubernetes 1.13.2多master高可用集群
  7. 用Word2007查找和替换功能批量设置图片位置
  8. 智能会议系统(7)---实时音视频技术难点及解决方案
  9. idea新建maven项目没有src目录的操作方法
  10. junit注释_JUnit注释
  11. 解决ADS1.2报错Cannot obtain license
  12. 打开excel很慢的解决方法
  13. 嵌入式开发需要学习什么?
  14. 荷香莫深湎,终付秋风落。(模拟
  15. Bresenham快速画直线算法
  16. 校招/社招/秋招/春招求职指南
  17. 读《做人的最高境界是厚道》有感
  18. 南加州大学计算机专业研究生录取,南加州大学研究生录取案例分享
  19. NowCoder LCMs(莫比乌斯反演)
  20. 无法打开包括文件: “ctype.h” 无法打开输入文件“accore.lib”

热门文章

  1. 群控系统是做什么的?好用吗?
  2. step7 v5.5 sp2西门子安装时为什么会出现未找到SSF文件
  3. 国外php开源采购系统,国外PHP开源CMS系统一览
  4. 龙芯处理器首次成功运行 OpenHarmony ;Log4j 被发现存在第三个漏洞;PyPI 服务出现中断 | 开源日报
  5. 车规级高性能服务器,芯驰科技发布四款车规级处理器
  6. 重节点对B样条曲线的影响
  7. 开发用什么linux系统版本,6种适用于开发人员的Linux发行版本!
  8. qt QSS入门(一)
  9. 如何使用软碟通制作启动U盘
  10. 同学,你听说过MOT吗?