当前位置: 首页 > 后端技术 > Python

sqlalchemy最简单的用法

时间:2023-03-26 18:16:29 Python

Django为我们提供了一个优秀的对象关系模型(ORM),通过它可以很容易地将对象操作映射到对数据库的操作。但是Django的ORM只能应用在Django项目中。为了在其他项目中使用ORM,可以选择sqlalchemyPythonPython中的ORM库有很多,但是最好的是Django的ORM,但是没有Django就用不了,除此之外还有sqlalchemy,SQLObject,Strom,peewee等。因此,本教程将介绍如何在普通Python项目中使用ORM操作数据库,包括对数据库、数据表、数据行的基本操作。索引,各种约束,高级事务,锁,并发版本控制等高级内容。本教程使用Mysql作为目标数据库,使用的sqlalchemy版本为1.4.15。如果你想使用其他数据库,请查看DialectsMoreName:SQLAlchemyVersion:1.4.15Summary:DatabaseAbstractionLibraryHome-page:http://www.sqlalchemy.orgAuthor:MikeBayerAuthor-email:mike_mp@zzzcomputing.comLicense:MITLocation:c:\users\17293\.virtualenvs\project_jd-wbhajpan\lib\site-packagesRequires:greenletRequired-by:执行命令安装pipinstallsqlalchemy连接Mysql服务器使用sqlalchemy代码作为Mysql客户端。连接数据库需要驱动,sqlalchemy支持很多Mysql驱动。sqlalchemy官方支持的驱动列表:DBAPISupport本教程使用mysqlclient作为驱动。使用该驱动需要以下两个程序,执行命令安装。pipinstallmysql-connector-python-rfpipinstallmysqlclient连接不同的数据库需要不同的驱动,比如有一个pymssql驱动连接SQLServer。好的,我们现在有一个连接到Mysql类DB的驱动程序:Base=declarative_base()classProductModel(Base):#表的名称:__tablename__='product'#表的结构:id=Column(Integer(),primary_key=True)url=Column(String(256),unique=True)name=Column(String(512))brand=Column(String(64))price=Column(Float())sales_volume=Column(Integer())score1Count=Column(Integer())score2Count=Column(Integer())score3Count=Column(Integer())score4Count=Column(Integer())score5Count=Column(Integer())db_config={'db_username':'root','db_password':'yjcyjc','db_host':'localhost','db_port':3306,'db_database_name':'d_test',}#初始化数据库连接:link_sql='mysql+mysqlconnector://{db_username}:{db_password}@{db_host}:'\'{db_port}/{db_database_name}?'\'auth_plugin=mysql_native_password'.format(**db_config)engine=create_engine(link_sql,echo=True)#创建DBSessiontype:DBSession=sessionmaker(bind=engine)Base.metadata.create_all(engine)operatedatabasecreatedatabasedeletedatabasemodifydatabaseoperatedatatablecreatetabledefinition模型执行迁移删除表修改表操作数据记录(记录行)添加数据删除数据修改数据查找数据