前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SQLAlchemy基本使用

SQLAlchemy基本使用

作者头像
小小科
发布2018-05-04 16:34:58
1.2K0
发布2018-05-04 16:34:58
举报
文章被收录于专栏:北京马哥教育北京马哥教育

云豆贴心提醒,本文阅读时间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对象

创建所有表结构

代码语言:javascript
复制
Base.metadata.create_all(engine)

代码测试快

基本操作

插入数据

最终显示结果

提交操作

代码语言:javascript
复制
    # 回滚操作
    # session.rollback()  
    # 提交所修改的操作
    # session.commit()

查询操作

1、query查询使用

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

代码语言:javascript
复制
from sqlalchemy import or_,and_

例子

3、返回的值为列表

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

5、其他可能会用到的

代码语言:javascript
复制
group_by() 和 order_by()
    group_by():分组查询
    order_by():排序

修改

代码语言:javascript
复制
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-02-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 马哥Linux运维 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 云豆贴心提醒,本文阅读时间6分钟,文末有秘密!
  • ORM介绍
  • SQLAlchemy介绍
  • 准备和初始化阶段
    • 导入SQLAlchemy所需的库文件
      • 初始化DBSession
        • 定义Host对象
          • 创建所有表结构
            • 代码测试快
            • 基本操作
              • 插入数据
                • 提交操作
                  • 查询操作
                    • 修改
                    相关产品与服务
                    数据库
                    云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档