Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

这篇具有很好参考价值的文章主要介绍了Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

要详细连接Oracle数据库并使用SQLAlchemy进行操作,按照以下步骤进行配置和编写代码:

1. 安装Oracle Instant Client

Oracle Instant Client:Oracle 提供的客户端库,可用于在 Python 中连接和操作 Oracle 数据库

  1. 访问 Oracle 官方网站:前往 Oracle 官方网站(instant-client/winx64-64-downloads)
    可能需要创建一个免费的 Oracle 账号才能访问下载页面,然后根据你的操作系统和系统架构(32位或64位)下载,这里选择下载64位
    Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

  2. 下载文件并解压到安装 Oracle 的目录中
    Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

  3. 设置环境变量:在 Windows 上,将 Oracle Instant Client 的路径添加到 “Path” 环境变量中。
    Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

  4. 将oracle客户端(就是新解压到安装目录的文件夹)目录下.dll文件复制到python环境下
    Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库
    Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

  5. 修改oracle client目录下 tnsnames.ora
    如果目录下不存在该文件,则复制到该目录下
    Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库
    Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库
    修改文件内容
    Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

  6. pycharm连接oracle测试

    from sqlalchemy.orm import declarative_base
    from sqlalchemy import create_engine, Column, Integer, String, text
    from sqlalchemy.orm import sessionmaker
    
    engine = create_engine("oracle+cx_oracle://system:root@192.168.0.146:1521/orcl")
    
    # 获取数据库连接对象
    connection = engine.connect()
    
    # 定义查询语句
    query = text("select sysdate from dual")
    
    # 执行查询
    result = connection.execute(query)
    
    # 处理查询结果
    for row in result:
        print(row)
    
    # 关闭数据库连接
    connection.close()
    

完成上述步骤后,Oracle Instant Client 就安装好了。使用相应的 Python 库(如 cx_Oracle)进行 Oracle 数据库连接和操作,提供正确的连接字符串和相关的配置信息(如用户名、密码、主机和端口等)即可

2. 安装依赖库

使用以下命令来安装SQLAlchemy和cx_Oracle库:

pip install SQLAlchemy
pip install cx_Oracle

Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

3. 导入模块并创建引擎

在Python代码中,导入所需的模块。这包括SQLAlchemy的create_engine函数和相关类,以及cx_Oracle库。
操作:新建一个database.py类用于其他模块引用

from sqlalchemy.orm import declarative_base
from sqlalchemy import create_engine, Column, Integer, String, text
from sqlalchemy.orm import sessionmaker

engine = create_engine("oracle+cx_oracle://system:root@192.168.0.146:1521/orcl")

# 创建一个基础模型类,作为所有数据库模型类的基类
Base = declarative_base()

# 创建映射类
class User(Base):
    __tablename__ = 'users'
    id = Column(Integer, primary_key=True)
    name = Column(String(50))
    age = Column(Integer)


# 在数据库中创建表
Base.metadata.create_all(engine)

# 获取数据库连接对象
connection = engine.connect()

# 创建会话工厂
Session = sessionmaker(bind=engine)

# 创建会话对象
session = Session()

Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

4. 操作oracle数据库

4.1 新增数据

新建insert_users.py用于新增数据

# 引入数据库session模块和User映射类
from database import User, session

# 创建数据
user = User(id=1, name='cxk', age=25)
session.add(user)

user = User(id=2, name='徐州蔡徐坤', age=18)
session.add(user)

user = User(id=3, name='阿坤', age=31)
session.add(user)

# 用于提交当前会话中的所有挂起的事务操作
session.commit()

# 全量数据查询
users = session.query(User).all()
for user in users:
    print(user.id, user.name, user.age)

Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

4.2 查询数据

新建select_users.py用于数据查询

from database import User, session

print("-----全部数据查询-----")
users = session.query(User).all()
for user in users:
    print(user.id, user.name, user.age)

print("-----查询年龄大于30的user-----")
users = session.query(User).where(User.age > 30)
for user in users:
    print(user.id, user.name, user.age)

print("-----查询名字包含'坤'的user-----")
users = session.query(User).filter(User.name.like("%坤%"))
for user in users:
    print(user.id, user.name, user.age)

Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

4.3 更新数据

新建update_book.py用于数据修改

# 引入数据库连接模块和Book映射类
from database import User, session

# 全量数据查询
user = session.query(User).filter(User.id == 1).first()
print("修改前数据")
print(user.id, user.name, user.age)

# 查询出年龄大于30的user
user.name = "修改name"
session.add(user)
session.commit();

# 全量数据查询
user = session.query(User).filter(User.id == 1).first()
print("修改后的数据")
print(user.id, user.name, user.age)

Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库

4.4 删除数据

新建delete_users.py用于数据删除

# 引入数据库连接模块和Book映射类
from database import User, session

# 全量数据查询
users = session.query(User).all()
print("删除前数据")
for user in users:
    print(user.id, user.name, user.age)

# 查询出年龄大于30的user
users = session.query(User).where(User.age > 30)

for user in users:
    # 删除数据
    session.delete(user)
    # 会话事务提交
    session.commit()

# 全量数据查询
users = session.query(User).all()
print("删除后数据")
for user in users:
    print(user.id, user.name, user.age)

Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库
多说一句,没事别xjb执行删除操作,硬盘有价,数据无价!文章来源地址https://www.toymoban.com/news/detail-503098.html

到了这里,关于Python 进阶(三):Python使用ORM框架SQLAlchemy操作Oracle数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python数据权限的管理通常涉及到几个关键组件:身份验证,、授权和访问控制。这通常是通过使用数据库、ORM(对象关系映射)框架、API框架和中间件

    在Python中,数据权限的管理通常涉及到几个关键组件:身份验证,、授权和访问控制。这通常是通过使用数据库、ORM(对象关系映射)框架、API框架和中间件等技术来实现的。以下是一些建议的步骤和工具,用于在Python项目中实施数据权限管理: 用户身份验证: 使用如Djan

    2024年04月26日
    浏览(45)
  • Django创建应用、ORM的进阶使用及模型类数据库迁移

    Django 项目就是基于 Django 框架开发的 Web 应用,它包含了一组配置和多个应用,我们把应用称之为 App,在前文中对它也做了相应的介绍,比如 auth、admin,它们都属于 APP。 一个 App 就是一个 Python 包,通常一个 App 可以包含模型、视图、模板和 URL 配置文件,可以被应用到多个

    2024年02月09日
    浏览(59)
  • 简单易用,灵活强大:用SQLAlchemy实现Python操作数据库

    什么是SQLAlchemy? SQLAlchemy是一个Python的SQL工具和ORM框架,可以通过Python代码直接操作关系型数据库,也可以使用ORM模型进行对象关系映射。它支持多种数据库,并提供了强大的SQL表达式和查询API。 SQLAlchemy可以分为两个部分:Core和ORM。 Core:提供了底层的SQL表达式和查询API,

    2024年02月04日
    浏览(73)
  • Django ORM:数据库操作的Python化艺术

    Django的对象关系映射器(ORM)是其核心功能之一,允许开发者使用Python代码来定义、操作和查询数据库。这篇文章将带你深入了解Django ORM的强大之处,从基本概念到高级查询技巧,提供丰富的示例帮助你掌握使用Django ORM进行有效和高效的数据库操作。 Django ORM的目的是提供一

    2024年02月04日
    浏览(61)
  • 【python】flask操作数据库工具SQLAlchemy,详细用法和应用实战

    ✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,

    2024年04月17日
    浏览(53)
  • 大白话说Python+Flask入门(六)Flask SQLAlchemy操作mysql数据库

    这篇文章被搁置真的太久了,不知不觉拖到了周三了,当然,也算跟falsk系列说再见的时候,真没什么好神秘的,就是个数据库操作,就大家都知道的 CRUD 吧。 1、Flask SQLAlchemy简介 Flask SQLAlchemy 是基于 Flask web 框架和 SQLAlchemy ORM (对象关系映射)的工具。它旨在为 Flask web 应用

    2024年02月05日
    浏览(70)
  • Java与数据库:JDBC和ORM框架的使用和效率优化

      随着互联网的快速发展和大数据时代的到来,数据库在软件开发中起到了至关重要的作用。Java作为一门强大而广泛应用的编程语言,提供了多种与数据库交互的方式。其中,JDBC和ORM框架是最常用的两种方式。本文将深入探讨JDBC和ORM框架的使用方法,并分享一些提高效率的

    2024年02月08日
    浏览(38)
  • SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解

    SqlAlchemy使用教程(一) 原理与环境搭建 SqlAlchemy使用教程(二) 入门示例及编程步骤 SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解 SqlAlchemy使用教程(四) MetaData 与 SQL Express Language 的使用 SqlAlchemy使用教程(五) ORM API 编程入门 Sqlalchemy 的Core部分集成了DB API, 事务管理,schema描述等

    2024年02月02日
    浏览(60)
  • SqlAlchemy使用教程(五) ORM API 编程入门

    SqlAlchemy使用教程(一) 原理与环境搭建 SqlAlchemy使用教程(二) 入门示例及编程步骤 SqlAlchemy使用教程(三) CoreAPI访问与操作数据库详解 SqlAlchemy使用教程(四) MetaData 与 SQL Express Language 的使用 SqlAlchemy使用教程(五) ORM API 编程入门 前一章用SQL表达式(SQL Express)语法操作数据库时,仍然

    2024年01月23日
    浏览(48)
  • 如何使用Flask-SQLAlchemy来管理数据库连接和操作数据?

    首先,我们需要安装Flask-SQLAlchemy。你可以使用pip来安装它,就像这样: 好了,现在我们已经有了一个可以操作数据库的工具,接下来让我们来看看如何使用它吧! 首先,我们需要创建一个Flask应用对象,并配置数据库的连接字符串和师: 现在,我们已经创建了一个数据库,

    2024年02月15日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包