Python与SQLAlchemy:轻松管理数据库

使用SQLAlchemy新建数据表 from flask_sqlalchemy import SQLAlchemy from typing import Callable from flask import Blueprint, current_app, Flask import pymysql pymysql.install_as_MySQLdb() import configMsg class MySQLAlchemy(SQLAlchemy): # Or you can add the below code on the SQLAlch 阅读详情

在这篇文章中,我们将学习如何使用Python和SQLAlchemy库来轻松管理数据库。SQLAlchemy是一个强大的ORM(对象关系映射)库,它允许您通过Python代码与关系型数据库进行交互,而无需编写SQL语句。

一、安装SQLAlchemy

首先,确保您已经安装了Python。然后,使用以下命令安装SQLAlchemy库:

pip install sqlalchemy

二、创建数据模型

在开始使用SQLAlchemy之前,我们需要创建一个数据模型来表示我们的数据。例如,假设我们有一个简单的应用程序,需要存储用户信息。我们可以创建一个User类来表示用户数据:

from sqlalchemy import Column, Integer, String
from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    age = Column(Integer)
    email = Column(String)

这里,我们首先从SQLAlchemy中导入所需的类和函数,然后创建一个User类,它继承自Base。我们定义了一个表名users,以及表示用户数据的列。

三、设置数据库连接

接下来,我们需要设置一个数据库连接。在这个例子中,我们将使用SQLite数据库,但SQLAlchemy支持多种数据库系统。创建一个名为database.py的文件,并添加以下代码来设置数据库连接:

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

from model import Base, User

DATABASE_URL = 'sqlite:///users.db'

engine = create_engine(DATABASE_URL)
Base.metadata.create_all(engine)

Session = sessionmaker(bind=engine)
session = Session()

这里,我们导入了之前创建的User类以及一些其他SQLAlchemy组件。我们指定了一个SQLite数据库文件users.db,然后创建了一个连接引擎。我们还创建了一个Session类,用于与数据库进行交互。

四、CRUD操作

现在我们已经设置好了数据库连接,我们可以执行一些基本的CRUD操作。以下是一些示例:

  • 创建(Create)

    要添加新用户,我们可以创建一个新的User对象,然后将其添加到会话中:

    new_user = User(name='John Doe', age=30, email='john.doe@example.com')
    session.add(new_user)
    session.commit()
    
    
  • 读取(Read)

    若要从数据库中查询用户,我们可以使用session.query()方法:

    users = session.query(User).all()
    for user in users:
        print(user.name, user.age, user.email)
    
    
  • 更新(Update)

    若要更新现有用户的信息,我们可以查询用户,修改属性,然后提交更改:

    user = session.query(User).filter(User.email == 'john.doe@example.com').first()
    if user:
        user.age = 31
        session.commit()
    
    
  • 删除(Delete)

    若要从数据库中删除用户,我们可以查询用户,然后将其从会话中删除:

    user = session.query(User).filter(User.email == 'john.doe@example.com').first()
    if user:
        session.delete(user)
        session.commit()
    
    

五、关联和外键

SQLAlchemy还支持表之间的关联和外键。例如,假设我们的应用程序还需要存储订单信息。我们可以创建一个Order类,并将其与User类关联:

from sqlalchemy import ForeignKey
from sqlalchemy.orm import relationship

class Order(Base):
    __tablename__ = 'orders'

    id = Column(Integer, primary_key=True)
    user_id = Column(Integer, ForeignKey('users.id'))
    product_name = Column(String)
    price = Column(Integer)

    user = relationship("User", back_populates="orders")

User.orders = relationship("Order", back_populates="user")

这里,我们创建了一个新的Order类,并定义了一个外键user_id,它引用了users表的id列。我们还定义了一个user关系,用于访问与订单关联的用户。在User类中,我们添加了一个orders关系,用于访问与用户关联的所有订单。

现在,我们可以轻松地查询和管理用户及其订单:

# 创建一个新订单
order = Order(product_name='Laptop', price=1000, user=user)
session.add(order)
session.commit()

# 查询用户的所有订单
orders = session.query(Order).filter(Order.user_id == user.id).all()
for order in orders:
    print(order.product_name, order.price)

# 查询与订单关联的用户
order_user = session.query(User).filter(User.id == order.user_id).first()
print(order_user.name)

通过使用SQLAlchemy,我们可以轻松地管理和查询数据库,而无需编写SQL语句。它为许多不同的数据库系统提供了统一的API,并具有许多其他高级功能,如事务和连接池。了解更多关于SQLAlchemy的信息,请查看官方文档。

---------------------------END---------------------------

题外话

在这里插入图片描述

感兴趣的小伙伴,赠送全套Python学习资料,包含面试题、简历资料等具体看下方。

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

img
img

二、Python必备开发工具

工具都帮大家整理好了,安装就可直接上手!img

三、最新Python学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

img

四、Python视频合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

img

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

img

六、面试宝典

在这里插入图片描述

在这里插入图片描述

简历模板在这里插入图片描述

👉优快云大礼包🎁:全网最全《Python学习资料》免费赠送🆓!(安全链接,放心点击)

若有侵权,请联系删除

Python 之数据库操作(Python Database Operations) MySQL 采用标准的 SQL 语言(结构化查询语言),SQL 是一种数据库查 询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。 虽然 Python 可以支持数据的本地存储,但前提是先从数据库获取才能保存下来,同 时还无法存储过多的数据,因为数据释放和使用会占用较大的内存,数据库负责把磁盘数据 组织好放回内存, Python 负责在内存中操作数据。本章详细介绍Python数据库操作。 阅读详情

相关推荐

医药行业新零售项目数据分析报告——基于Excel的分析与可视化

不同平台客户支付金额用数字+百分比展示更直观。各大区支付金额分析较为粗浅,后续可加入不同大区人数、配送费等进行细分分析。图表略微单一,可采用组合图,运用两个及以上维度对数据进行分析。数据来源本项目数据来源于某机构的项目案例,以上分析内容均为本人原创,不涉嫌抄袭。原做项目,新平台首发。

2401_84213513的博客 1495

Python SQLAlchemy 如何与 Flask 集成

SQLAlchemy 是 Python 中最流行的 ORM 库之一,它能够让开发者通过编写 Python 代码,而不是直接编写 SQL 语句来操作数据库。SQLAlchemy 的核心概念是通过模型类来表示数据库表,使用 Python 的对象来操作数据库中的记录。虽然 SQLAlchemy 本身可以独立于 Flask 使用,但为了与 Flask 更好地集成,社区提供了一个扩展库,这个扩展封装了 SQLAlchemy,简化了它在 Flask 中的配置和使用,使得 Flask 应用更容易与数据库交互。在。

chusheng1840的博客 1260

「 网络安全常用术语解读 」软件成分分析SCA详解:从发展背景到技术原理再到业界常用检测工具推荐

软件成分分析(Software Composition Analysis,SCA)是一种用于识别和分析软件内部组件及其关系的技术,旨在帮助开发人员更好地了解和管理其软件的构建过程,同时可帮助安全人员揭秘软件内部结构的神秘面纱。SCA技术的发展与软件行业的快速发展密不可分,下面将介绍SCA的发展背景、技术原理以及当前主流SCA工具。

所有成功的背后,都是痛苦的坚持,所有的痛苦,都是傻瓜般的不放弃! 5637

Beaker is session a middleware

http://wsgi.org/wsgi/Middleware_and_Utilities reference:http://beaker.groovie.org/Beaker is a library for caching and sessions for use with web applications and stand-alone Python scripts and applicat...

weixin_34192993的博客 102

从标记基因到功能分析:手把手教你人工注释单细胞亚群的完整流程

本文详细介绍了人工注释单细胞亚群的完整流程,从标记基因筛选到功能分析验证,特别针对肿瘤微环境、发育轨迹等复杂场景提供解决方案。通过差异表达分析、多维数据整合和实验验证,帮助研究者准确识别细胞类型,提升单细胞转录组研究的生物学解读深度。

jenkins8butler的博客 245

CentOS 7 常用命令大全

CentOS中Linux命令

m0_63075763的博客 2019

简单易用,灵活强大:用SQLAlchemy实现Python操作数据库

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

weixin_62650212的博客 1万+

前端build工程的时候 出现 `build.rollupOptions.external 的解决方法

看到这个Bug,理性分析: 遇到 Rollup failed to resolve import “@vue/devtools-api” 错误可能是由于 Pinia 使用了 @vue/devtools-api 模块,而 Vite 的 Rollup 插件无法解析这个模块 ps:但是我前一秒还可以,加了个别代码,突然不行,我是不相信的 = - =

码农研究僧的博客 3056

SQLALCHEMY_DATABASE_URI和SQLALCHEMY_BINDS

在这里,你需要将username替换为你的数据库用户名,password替换为你的数据库密码,localhost替换为你的数据库主机,db_name替换为你的数据库名。db1: 使用MySQL连接,用户名为user1,密码为password1,主机为localhost,数据库名为db1。db2: 使用MySQL连接,用户名为user2,密码为password2,主机为localhost,数据库名为db2。这样,Model1会使用名为db1的数据库连接,Model2会使用名为db2的数据库连接。

u010163826的博客 3316

226届数字IC秋招笔试面试全攻略

本文系统介绍了数字IC设计岗位面试的核心技巧,聚焦三大关键环节:自我介绍、项目介绍和技术问题回答。在自我介绍部分,强调1-2分钟结构化表达,突出与岗位匹配的技能和量化成果;项目介绍环节提出"背景-职责-技术-难点-成果"五步框架,建议结合架构图和性能数据展示技术深度;技术问题回答策略包括理解问题、结构化思考、举例说明和诚实应对未知。文章还提供了项目包装方法,指导如何通过量化数据、架构创新展示和技术难点解决方案来突出项目亮点,并附有简历项目描述示例和技术问题回答模板,帮助面试者全方位展示专

2301_79143213的博客 1063

Amber&pdb4amber | 准备PDB文件

PDB文件中唯一需要或有用的数据来设置AMBER模拟是:原子名称,残基名称,也许还有链标识符(如果存在多条链),以及重原子的坐标。除非加载额外的文库,否则非蛋白质结构(特别是低分子量配体)会引起问题;如果它们在PDB文件中的名称对应于AMBER库中的内部名称,则通常会识别水和单原子离子。–dry选项移除结构中的结晶水和–reduce选项在最理想的位置添加氢原子.为tleap程序调整从外部获得的PDB文件。

ASKCOS博客 898

Ray 内部共享层 ray._common 的设计定位与开发指南

`ray._common` 是 Ray 仓库中承载 Ray Core 与各原生 AI 库(如 RLlib、Data、Serve、Train)之间共享逻辑的"开发者 API"层。本文以 [python/ray/_common/README.md](https://link.gitcode.com/i/7fc7c9097c2b06ba1d9d3876511caeec) 为核心骨架,结合 [python

gitblog_00488的博客 1071

多尺度仿真软件:Copasi_(1).Copasi概述

Copasi(Complex Pathway Simulator)是一款开源的多尺度仿真软件,专为生物化学、系统生物学和合成生物学领域的研究人员设计。它不仅能够模拟细胞内和细胞间的生化反应网络,还能处理代谢途径、信号传导途径和基因调控网络等多种复杂系统。Copasi提供了用户友好的图形界面和强大的命令行接口,支持多种仿真算法和分析工具,使用户能够高效地进行模型构建、仿真和分析。Copasi允许用户创建自定义报告,以便生成特定格式的仿真结果。用户可以通过图形界面或命令行创建自定义报告。

kkchenjj的博客 857

【Python】使用SQLAlchemy操作Mysql数据库

SQLAlchemy是Python的SQL工具包和对象关系映射(ORM)库,它提供了全套的企业级持久性模型,用于高效、灵活且优雅地与关系型数据库进行交互。使用SQLAlchemy,你可以通过Python类来定义数据库表的结构,并通过这些类与数据库进行交互,而无需编写复杂的SQL语句。

不积跬步无以至千里,不积小流无以成江海。一个喜欢学习分享的程序员 8113

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

【Python】FastAPI之SQLAlchemy、关联关系

SQLAlchemy对象关系映射器提供了一种方法,用于将用户定义的Python类与数据库表相关联,并将这些类(对象)的实例与其对应表中的行相关联。它包括一个透明地同步对象及其相关行之间状态的所有变化的系统,称为工作单元,以及根据用户定义的类及其定义的彼此之间的关系表达数据库查询的系统。可以让我们使用类和对象的方式操作数据库,从而从繁琐的 sql 语句中解脱出来。

专注上位机开发、机器视觉、机器学习、嵌入式软硬件开发 1万+

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Python SQLAlchemy库详解

大家好,在Python生态系统中,SQLAlchemy库是一个强大的工具,为开发人员提供了便捷的方式来处理与数据库的交互。无论是开发一个小型的Web应用程序,还是构建一个大型的企业级系统,SQLAlchemy都能满足你的需求,并提供灵活性和性能上的优势。本文将带你深入探索SQLAlchemy库,从基础概念到高级用法,让你对其有一个全面的了解。

若不知道要驶向哪个码头,那么任何风都不会是顺风。 2105

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

SQLAlchemy终极指南:5个技巧构建高性能Python数据库应用

SQLAlchemy是Python生态中最强大的数据库工具包,为开发者提供了完整的ORM和SQL表达式语言解决方案。作为Python数据库编程的瑞士军刀,它支持多种数据库后端,提供灵活的查询构建和高效的数据映射功能,帮助开发者快速构建可扩展的企业级应用。无论你是构建Web应用、数据分析工具还是自动化系统,SQLAlchemy都能显著提升数据库操作的效率和代码质量。 ## 项目概述与核心价值 S

gitblog_00577的博客 895

Python 之SQLAlchemy使用详细说明

ORM(Object-Relational Mapping)模型,即对象关系映射,是一种程序设计技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。在面向对象的编程语言中,如Java、Python等,数据通常被组织成复杂的对象关系。简单来说就是ORM模型把面向对象编程与操作数据库之间建立了映射。设置开发者操作数据库无需维护和编写SQL语句,而是基于面对对象的方式操作数据库。数据库中的表>编程语言中的类,表中的字段>类中的属性,表之间的关系>类之间的关系。

lIujunXHU的博客 7327

FastAPI-SQLAlchemy终极指南:10分钟快速集成Python Web应用与数据库

想要为你的FastAPI应用添加数据库支持吗?FastAPI-SQLAlchemy是你的完美解决方案!这个强大的库让Python Web应用与SQLAlchemy数据库的集成变得前所未有的简单。无论你是构建REST API、微服务还是企业级应用,FastAPI-SQLAlchemy都能在10分钟内帮你完成数据库配置。😊 ## 为什么选择FastAPI-SQLAlchemy? 在Python

gitblog_01059的博客 463
上一篇: Python :如何分析 FastAPI 异步请求的性能?
下一篇: python接口自动化测试框架2.0,让你像Postman一样编写测试用例,支持多环境切换、多业务依赖、数据库断言等
Python_P叔
博客等级 码龄3年 5454粉丝 827原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值