广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python ORM 之间对比
  • 562
分享到

Python ORM 之间对比

PythonORM 2023-01-31 05:01:17 562人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

python ORM 之间对比 对于在文章里提到的每一种 Python ORM ,我们来列一下他们的优缺点:  sqlObject  优点: 采用了易懂的ActiveRecord 模式  一个相对较小的代码库  缺点

python ORM 之间对比

对于在文章里提到的每一种 Python ORM ,我们来列一下他们的优缺点: 

sqlObject 

优点:

  1. 采用了易懂的ActiveRecord 模式 

  2. 一个相对较小的代码库 

缺点:

  1. 方法和类的命名遵循了Java 的小驼峰风格 

  2. 不支持数据库session隔离工作单元 


Storm 

优点:

  1. 清爽轻量的api,短学习曲线和长期可维护性 

  2. 不需要特殊的类构造函数,也没有必要的基类 

缺点:

  1. 迫使程序员手工写表格创建的DDL语句,而不是从模型类自动派生 

  2. Storm的贡献者必须把他们的贡献的版权给Canonical公司 


Django's ORM 

优点:

  1. 易用,学习曲线短 

  2. 和DjanGo紧密集合,用Django时使用约定俗成的方法去操作数据库 

缺点:

  1. 不好处理复杂的查询,强制开发者回到原生SQL 

  2. 紧密和Django集成,使得在Django环境外很难使用 


peewee 

优点:

  1. Django式的API,使其易用 

  2. 轻量实现,很容易和任意WEB框架集成 

缺点:

  1. 不支持自动化 schema 迁移 

  2. 多对多查询写起来不直观 


SQLAlchemy 

优点:

  1. 企业级 API,使得代码有健壮性和适应性 

  2. 灵活的设计,使得能轻松写复杂查询 

缺点:

  1. 工作单元概念不常见 

  2. 重量级 API,导致长学习曲线 

AndyLam
AndyLam
翻译于 2年前

3人顶

顶 翻译的不错哦!

总结和提示

相比其他的ORM, SQLAlchemy 意味着,无论你何时写SQLAlchemy代码, 都专注于工作单元的前沿概念 。DB Session 的概念可能最初很难理解和正确使用,但是后来你会欣赏这额外的复杂性,这让意外的时序提交相关的数据库bug减少到0。在SQLAlchemy中处理多数据库是棘手的, 因为每个DB session 都限定了一个数据库连接。但是,这种类型的限制实际上是好事, 因为这样强制你绞尽脑汁去想在多个数据库之间的交互, 从而使得数据库交互代码很容易调试。

在未来的文章中,我们将会完整地披露更高阶的SQLAlchemy用例, 真正领会无限强大的API。

--结束END--

本文标题: Python ORM 之间对比

本文链接: https://www.lsjlt.com/news/188903.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python ORM 之间对比
    Python ORM 之间对比 对于在文章里提到的每一种 Python ORM ,我们来列一下他们的优缺点:  SQLObject  优点: 采用了易懂的ActiveRecord 模式  一个相对较小的代码库  缺点...
    99+
    2023-01-31
    Python ORM
  • PHP 主流ORM对比
    ORM(Object-Relational Mapping)是一种将对象模型和关系数据库之间进行转换的技术。在 PHP 中,有许多 ORM 组件可供选择,每个组件都有其自身的优点和缺点。下面是对几个常用 PHP ORM 组件的利弊分析: L...
    99+
    2023-09-09
    php ORM
  • SpringBoot与Spring之间的对比
    目录SpringBoot与Spring之间对比原有Spring优缺点分析SpringBoot的概述SpringBoot的核心功能SpringBoot与springcloud版本对应关...
    99+
    2023-02-23
    SpringBoot与Spring的对比 SpringBoot与Spring SpringBoot Spring
  • Python实用小知识之对象间的比较
    目录前言场景代码里的收货地址了解__eq__方法实现扩展总结前言 今天就结合日常生活的例子,给大家讲讲Python对象之间的比较。(内容不多,小娃儿都能看懂) 场景 米洛今年国庆节打...
    99+
    2022-11-12
  • mysql之间数据库结构对比
    适应环境:项目中对产品升级,设计到两个版本数据库结构不同使用工具:Navicat1、准备两个版本的数据库2、打开工具Navicat3、分别连接两个数据库4、点击“工具-结构同步”5、常规中选择两个连接的数据...
    99+
    2022-10-18
  • Python之元类ORM
    什么是元类在Python中一切皆对象,类也是一个对象,实例对象由类创建出来的,类是由元类创建出来的。简而言之,用来创建类的类就叫元类(metaclass)。 函数type其实就是一个元类,type就是Python在背后用来创建所有类的元类...
    99+
    2023-01-31
    Python ORM
  • 浅谈Python中chr、unichr、ord字符函数之间的对比
    ord是unicode ordinal的缩写,即编号 chr是character的缩写,即字符 ord和chr是互相对应转换的. 但是由于chr局限于ascii,长度只有256,于是又多了个un...
    99+
    2022-06-04
    浅谈 函数 字符
  • .Net 常用ORM框架对比:EF Core、FreeSql、SqlSuger
      前言:   最近由于工作需要,需要选用一种ORM框架,也因此对EF Core、FreeSql、SqlSuger作简单对比。个人认为各有有优势,存在即合理,不然早就被淘汰了是吧,所以如何选择因人而议、因项目而议,下面开始正题。   本篇...
    99+
    2017-02-01
    .Net 常用ORM框架对比:EF Core FreeSql SqlSuger 数据库入门 数据库基础教程 数据库 mysql
  • Python练习之ORM框架
    目录一、Python语言中有哪些常用的ORM框架以及它们的区别二、使用SQLObject框架操作MySQL数据库1. 创建表2. 插入数据3. 修改数据4. 查询数据三、补充总结目的...
    99+
    2022-11-13
  • SQLite、MySQL、PostgreSQL3个关系数据库之间的对比
    引言 关系数据模型以行和列的表格形式组织数据,在数据库管理工具中占主导地位。今天还有其他数据模型,包括NoSQL和NewSQL,但是关系数据库管理系统(RDBMS)仍然占主导地位用于存储和管理全球数据...
    99+
    2023-09-20
    sqlite mysql postgresql 数据库
  • java 中InputStream,String,File之间的相互转化对比
    InputStream,String,File相互转化 1. String --> InputStreamInputStream String2InputStream(String str){ ByteArrayInputS...
    99+
    2023-05-31
    java inputstream string
  • python之对比度与亮度如何调整
    这篇文章主要介绍了python之对比度与亮度如何调整的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇python之对比度与亮度如何调整文章都会有所收获,下面我们一起来看看吧。skimage包的exposure模块...
    99+
    2023-07-02
  • Python字典和列表性能之间的比较
    Python列表和字典 前面我们了解了 “大O表示法” 以及对不同的算法的评估,下面来讨论下 Python 两种内置数据类型有关的各种操作的大O数量级:列表 list 和字...
    99+
    2022-11-12
  • 浅谈Node.js ORM框架Sequlize之表间关系
    Sequelize模型之间存在关联关系,这些关系代表了数据库中对应表之间的主/外键关系。基于模型关系可以实现关联表之间的连接查询、更新、删除等操作。本文将通过一个示例,介绍模型的定义,创建模型关联关系,模型...
    99+
    2022-06-04
    浅谈 框架 关系
  • Python之ORM框架怎么使用
    本文小编为大家详细介绍“Python之ORM框架怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Python之ORM框架怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、Python语言中有哪些常...
    99+
    2023-07-02
  • python3之深浅copy对比
    一、赋值对比1、列表l1 = [1,2,3] l2 = l1 l1.append('a') print(l1,l2)               #[1, 2, 3, 'a'] [1, 2, 3, 'a'] print(id(l1),id(...
    99+
    2023-01-31
    深浅 copy
  • Python文件对比
    环境:python2.6.6linux系统对比文件差异用Python里的difflib模块:Python自带difflib模块,无需安装。对比两个文件是否一样总体思路就是:将文件里的内容读出来然后再对比符号含义+包含在第二个序列中,但不包含...
    99+
    2023-01-31
    文件 Python
  • 对比java和python
    对比java和python    1.难易度而言。python远远简单于java。   2.开发速度。Python远优于java   3.运行速度。java远优于标准python,pypy和cython可以追赶java,但是两者都没有...
    99+
    2023-01-31
    java python
  • 【Python】datetime间的比较
    1.string转datetime #字符串转datetime dt = datetime.datetime.strptime('2017-04-19 00:42:44','%Y-%m-%d %H:%M:%S') 2.datetime转...
    99+
    2023-01-31
    Python datetime
  • 排序时间复杂度对比
    1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 import random 4 import datetime 5 6 #插入式排序 7 def insert_sor...
    99+
    2023-01-30
    复杂度 时间
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作