Python中使用SQLAlchemy操作数据库

如题所述

第1个回答  2024-09-19
软硬件环境

Windows1064bit

anacondawithpython3.7

MySQL8.0.20

sqlalchemy

前言

前文python3中的mysql数据库操作已经介绍过利用pymysql来操作mysql数据库,本文介绍一个ORM框架SQLAlchemy,它可以帮助我们更加优雅、更加高效的实现数据库操作,而且还不限于mysql数据库。

什么是ORM

ORM即ObjectRationalMapping,对象关系映射。百度百科中是这样解释的

对象-关系映射(OBJECTRELATIONALMAPPING,简称ORM),是随着面向对象的软件开发方法发展而产生的。用来把对象模型表示的对象映射到基于SQL的关系模型数据库结构中去。这样,我们在具体的操作实体对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作实体对象的属性和方法。ORM技术是在对象和关系之间提供了一条桥梁,前台的对象型数据和数据库中的关系型的数据通过这个桥梁来相互转化。

用一句话来概括就是,把关系数据库的表结构映射到对象上。操作对象的属性就等于操作数据库中的记录。

SQLAlchemy实践

在写代码之前,我们先准备下数据库,这里还是以mysql为例,其它的数据库也类似,可以参靠sqlalchemy的官方文档。

表结构保持跟前文的一致,表名是testtable,有三个字段

id,数据类型是INT(11),设为主键、唯一、非空、UNSIGNED、AUTOINCREMENT

name,数据类型是VARCHAR(45),设为非空

sex,数据类型是VARCHAR(45),设为非空

接下来,安装相关的工具包

pipinstallpymsqlpipinstallsqlalchemy

最后来写代码

fromsqlalchemyimportColumn,String,Integer,create_enginefromsqlalchemy.ormimportsessionmakerfromsqlalchemy.ext.declarativeimportdeclarative_base#创建对象的基类:Base=declarative_base()classPerson(Base):#表名__tablename__='testtable'#表结构id=Column(Integer(),primary_key=True)name=Column(String(45))sex=Column(String(45))def__init__(self,id,name,sex):self.id=idself.name=nameself.sex=sex#初始化数据库连接,:engine=create_engine('mysql+pymysql://root:toor@localhost:3306/testdb',echo=False)#创建DBSession类型:DBSession=sessionmaker(bind=engine)session=DBSession()#增操作,增加3条记录item1=Person(id=1,name='xgx',sex='male')session.add(item1)item2=Person(id=2,name='xgx1',sex='female')session.add(item2)item3=Person(id=3,name='xgx1',sex='male')session.add(item3)item4=Person(id=4,name='xgx2',sex='female')session.add(item4)session.commit()session.close()#查操作session1=DBSession()persons=session1.query(Person).filter(Person.id<'4').all()foriinrange(len(persons)):print(persons[i].id)print(persons[i].name)print(persons[i].sex)session1.close()#改操作,将id为2的记录的service_name字段修改为moviesession2=DBSession()session2.query(Person).filter(Person.id=='2').update({Person.name:'xxx'},synchronize_session=False)session2.commit()session2.close()##查看修改结果session3=DBSession()print('\n')print(session3.query(Person).filter(Person.id=='2').one().name)session3.close()#删操作,删除id为3的记录session4=DBSession()session4.query(Person).filter(Person.id=='3').delete()session4.commit()session4.close()

执行上述脚本后,用mysql-workbench查看数据库

数据库中的记录跟代码要实现的意图是完全相符。

参考资料

http://www.sqlalchemy.org/

https://xugaoxiang.com/2020/06/12/python-pymysql/

http://baike.baidu.com/link?url=enj6JgEqdyte0DLpJqBAfiKusns6yL3-MHU8pW6_j14sa0yAvuTtC3DMlkHKbasHOti50UbcSLxljOVm5w6fV_

logo设计

创造品牌价值

¥500元起

APP开发

量身定制,源码交付

¥2000元起

商标注册

一个好品牌从商标开始

¥1480元起

公司注册

注册公司全程代办

¥0元起

    官方电话官方服务
      官方网站八戒财税知识产权八戒服务商企业需求数字市场

如何使用sqlalchemy来查询mysql数据库?
pip install SQLAlchemy mysql-connector-python 接下来,按照以下步骤进行数据库连接、定义映射类和执行查询操作。导入必要的模块和类:from sqlalchemy import create_engine, Column, Integer, String, MetaData, Table from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import s...

Python中使用SQLAlchemy操作数据库
用一句话来概括就是,把关系数据库的表结构映射到对象上。操作对象的属性就等于操作数据库中的记录。SQLAlchemy实践在写代码之前,我们先准备下数据库,这里还是以mysql为例,其它的数据库也类似,可以参靠sqlalchemy的官方文档。表结构保持跟前文的一致,表名是testtable,有三个字段 id,数据类型是INT(...

Python Web | Flask使用Flask-SQLAlchemy对数据库操作详解二(增删改...
数据库操作详解1. 增加数据Flask-SQLAlchemy中,你可以使用add()方法添加新数据,或者利用create()方法创建完整的数据对象。2. 查询数据查询数据是通过db.session.query()方法实现的,支持多种操作,如查询所有记录、条件查询、排序和分页。3. 更新数据修改数据时,通过commit()方法提交db.session对象的更...

Python SQLalchemy 基础操作之数据库增删改查
Python的SQLAlchemy是强大的ORM工具,它以Python类映射数据库表,简化了数据库操作。SQLAlchemy支持多种数据库,如SQLite、PostgreSQL、MySQL和Oracle,只需安装并配置相应的连接信息即可。例如,SQLite的连接创建可以是相对或绝对路径,而其他数据库需要预先存在。ORM的核心是定义映射关系。首先,创建一个基础映...

Python Web | Flask使用Flask-SQLAlchemy对数据库操作详解一(配置...
在Python Web开发中,Flask框架配合Flask-SQLAlchemy为我们提供了强大的数据库操作能力。本文将深入解析Flask-SQLAlchemy的配置、模型声明、以及一对一、多对一和多对多关系的处理方式。首先,通过简单的配置和模型声明,我们可以使用Base类创建表示数据库表的类。例如,User表有id、username和email字段,其中...

【Python进阶】Python中的数据库交互:ORM技术与SQLAlchemy
在软件开发过程中,数据持久化存储是至关重要的环节。Python通过各种数据库驱动模块(如psycopg2、pyodbc等)直接与数据库通信,或者通过ORM框架(如SQLAlchemy)提供更为抽象、面向对象的方式来操作数据库。ORM使得开发者能够使用Python类和对象的方式处理数据,大大提高了开发效率和代码的可维护性。ORM,即...

Python库之SQLAlchemy
SQLAlchemy是一个Python语言实现的关系型数据库ORM库,可用于连接多种常见数据库,包括Postgres、MySQL、SQLite、Oracle等。使用SQLAlchemy有助于抽象出底层数据库及其SQL特性,简化数据库操作。SQLAlchemy提供了两种主要的使用模式,应根据具体需求选择。要连接数据库,需创建SQLAlchemy引擎,通过指定连接字符串及...

利用sqlalchemy实现增删改查,并读取登录信息连接设备
除了常用的pymysql库,本文将介绍如何利用SQLAlchemy,一个Python的数据库ORM(对象关系映射)库,实现设备登录信息的增删改查操作。通过SQLAlchemy,开发者可以更高效地与数据库交互,实现自动创建数据库、表格以及执行一系列操作,从而简化复杂的数据库处理任务。在深入SQLAlchemy的使用之前,首先需要感谢两位对...

Python库学习(十四):ORM框架-SQLAlchemy
Python ORM框架-SQLAlchemy详解SQLAlchemy 是Python中强大的SQL工具和ORM库,它通过Python代码而非SQL查询操作数据库,支持多种后端如PostgreSQL、MySQL和SQLite。本文将重点介绍SQLAlchemy的ORM部分,版本为1.4.51。核心组件与ORM学习SQLAlchemy时,需理解其核心组件:ORM和Core。ORM负责数据库操作的高层次抽象...

sqlalchemy,操作mysql数据库报错incorrectstringvalue,
面对SQLAlchemy操作MySQL数据库时遇到的"incorrect string value"错误,首先需要检查并调整SQLALCHEMY_DATABASE_URI配置。确保添加了适当的'driver'参数。具体来说,对于Python2,'driver'应设置为'mysqldb';对于Python3,则应使用'pymysql'。在确认'driver'参数设置正确之后,接下来的步骤是确保所使用的数据...

相似回答
大家正在搜