sqlalchemy 最简易用法
Posted ponponon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlalchemy 最简易用法相关的知识,希望对你有一定的参考价值。
Django
为我们提供了极为优秀的对象关系模型(ORM),通过 ORM
可以很方便的将对象操作映射为对数据库的操作。
但是 Django
的 ORM
只能应用在 Django
项目中,为了在其他项目中使用 ORM
,可以选用 sqlalchemy
Python
中有很多ORM
库,但是做的最好的是Django
的ORM
,但是你无法脱离Django
单独使用它,除此之外还有sqlalchemy
、SQLObject
、Strom
、peewee
等等
因此本教程接下来介绍如何在普通的 Python
项目中使用 ORM
来操作数据库,包括基本的对数据库、数据表、数据行的操作,进阶的索引、各种约束,以及高级的事务、锁、并发版本控制等高级内容。
本教程以 mysql 为目标数据库,使用的 sqlalchemy 版本为 1.4.15 ,如果想使用其他数据库,请查看 Dialects More
Name: SQLAlchemy
Version: 1.4.15
Summary: Database Abstraction Library
Home-page: http://www.sqlalchemy.org
Author: Mike Bayer
Author-email: mike_mp@zzzcomputing.com
License: MIT
Location: c:\\users\\17293\\.virtualenvs\\project_jd-wbhajpan\\lib\\site-packages
Requires: greenlet
Required-by:
执行一下命令安装
pip install sqlalchemy
连接 Mysql 服务器
使用 sqlalchemy 的代码充当的是 Mysql 客户端的角色。
连接数据库需要驱动程序,sqlalchemy 支持非常多的 Mysql驱动程序。
sqlalchemy
官方支持的驱动程序列表:DBAPI Support
本教程选用 mysqlclient
作为驱动程序。使用该驱动程序需要以下两个程序,执行命令安装他们。
pip install mysql-connector-python-rf
pip install mysqlclient
连接不同数据库需要不同的驱动程序,例如连接 SQL Server 有 pymssql 驱动程序。
好了,我们现在已经有了连接 Mysql 的驱动程序了
class DB:
Base = declarative_base()
class ProductModel(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)
# 创建DBSession类型:
DBSession = sessionmaker(bind=engine)
Base.metadata.create_all(engine)
操作数据库
创建数据库
删除数据库
修改数据库
操作数据表
创建表
定义模型
执行迁移
删除表
修改表
操作数据记录(记录行)
新增数据
删除数据
修改数据
查找数据
以上是关于sqlalchemy 最简易用法的主要内容,如果未能解决你的问题,请参考以下文章
Flask 分页的简单用法 / flask_sqlalchemy /无刷新翻转页面(原创)