SQLAlchemy基本使用

云豆贴心提醒,本文阅读时间6分钟,文末有秘密!

ORM介绍

ORM(Object-Relational Mapping) 架构,采用元数据来描述对象-关系映射细节。业务实体在内存中表现为对象,在数据库中表现为关系数据。内存中的对象之间存在关联和继承关系。我们平常使用的数据库都为关系型。所以ORM系统一般是以中间层的方式存在,用来关联对象和数据库数据的映射。

由于现在流行的关系型数据库有很多,假设代码在部署的使用的底层数据库使用的MySQL,并已经正常稳定运行,但是现在需要将MySQL换成oracle,闹么将会需要将原来所编写的代码进行大批量的修改,导致重复的操作。所以使用一种中间层的方式,利用API对ORM进行调用,这样就无论底层的的数据库是什么类型,我们所修改的无非就是API参数即可,无需大幅度的修改代码。

SQLAlchemy介绍

SQLAlchemy是Python语言中一款开源软件的ORM工具,采用简单的Python语言,提供高性能的数据库访问,实现完整企业级持续模型。SQLAlchmey采用了类似于Java里Hibernate的数据映射模型,而不是其他ORM框架采用的Active Record模型。

  • 优点 1、设计灵活,代码健壮性和适应性 2、丰富的社区群体 3、丰富的插件以及和扩展
  • 缺点 1、重量级的API,学习曲线比较长 2、对于复杂的联合查询,使用where过滤编写查询语句较为复杂

准备和初始化阶段

导入SQLAlchemy所需的库文件

初始化DBSession

定义Host对象

创建所有表结构

Base.metadata.create_all(engine)

代码测试快

基本操作

插入数据

最终显示结果

提交操作

    # 回滚操作
    # session.rollback()  
    # 提交所修改的操作
    # session.commit()

查询操作

1、query查询使用

2、匹配过滤 常用匹配方式(此处不会列全,仅做参考) ==, !=, in, like, and_, or_等 其中 and_ 和 or_ 还需要在 sqlalchemy 导入模块才可使用

from sqlalchemy import or_,and_

例子

3、返回的值为列表

4、统计数量 使用是需要导入func模块

5、其他可能会用到的

group_by() 和 order_by()
    group_by():分组查询
    order_by():排序

修改

原文发布于微信公众号 - 马哥Linux运维(magedu-Linux)

原文发表时间:2017-02-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

Oracle Data Guard压缩归档效果对比(r12笔记第26天)

Oracle Data Guard对归档的传输提供了很多辅助的选项,这个可 以通过log_archive_dest_x看到。 一般说这类的优化,如果...

37170
来自专栏about云

kafka权威指南 第二章第6节 Kafka集群配置与调优

问题导读: 1 Kafka集群有什么优势? 2 集群中部署多少个节点合适? 3 集群针对系统如何调优? Kafka集群 对于本地的开发工作或者概念性的...

40560
来自专栏我是攻城师

Nodejs笔记(一)

33070
来自专栏云计算

Linux性能分析工具与图形化方法

在项目开发中,经常会遇到程序启动时间过长、CPU使用率过高等问题,这个时候需要依靠性能分析工具来定位性能的消耗点。

2.3K310
来自专栏Java架构师学习

日志: 分布式系统的核心日志的应用

最近这段时间一直在研究消息队列、文件系统、数据库等,慢慢的发现他们都有一个核心组件:日志.有时也叫write-ahead logs 、commit logs 或...

35370
来自专栏较真的前端

您必须知道的 Git 分支开发规范

Git 是目前最流行的源代码管理工具。 为规范开发,保持代码提交记录以及 git 分支结构清晰,方便后续维护,现规范 git 的相关操作

16940
来自专栏听雨堂

异步Socket处理的一些测试值

客户端进行发送,服务器端将相同的数据回发到客户端。记录收发的次数。 1. 如果进行较大规模的UI处理(在TextBox中显示接收内容),将会大大降低响应时间,...

24350
来自专栏云计算教程系列

如何使用ntopng监控您的网络

ntop 是最好的网络监控工具之一。ntop是一个网络探测器,它以与top显示进程般类似的方式显示网络使用率。在交互模式中,它显示了用户终端上的网络状态。在网页...

62440
来自专栏枕边书

linux的“自动化”

linux的“自动化” linux系统的web网站在运营状态时,我们常需要对网站进行维护,例如查看资源剩余并做出响应、日志分割、数据整理,在特定状态执行特定任务...

24890
来自专栏tiane12

CentOS修改系统时间

33730

扫码关注云+社区

领取腾讯云代金券