SQLAlchemy是Python编程语言下的一款开源软件,提供了SQL工具包及对象关系映射(ORM)工具。
值得特别注意的是ORM,全称object-relational mapping,即对象关系映射。再简单点来讲,ORM就是将python的类映射到数据库中的表,一个类对应一个表。
第一步,(如有提示,需要更新下pip,使用命令行sudo pip install --upgrade pip),安装SQLAlchemy
sudo pip install sqlalchemy
出现以下信息即表示安装成功,最新版本1.2.5。
Collecting sqlalchemy
Installing collected packages: sqlalchemy
Successfully installed sqlalchemy-1.2.5
接着启动MySQL 服务,输入mysql -u root -p,回车,再输入密码,回车,以下信息说明MySQL已经正常启动了。
mysql
创建一个数据库:
CREATE DATABASE 数据库名称
创建一个类,取名叫User吧
# 创建对象的基类
Base = declarative_base()
# 定义User对象
class User(Base):
# 表的名字
__tablename__ = 'school'
# 表的结构
id = Column(Integer, primary_key=True)
school_name = Column(String(20), nullable=False)
往表中添加记录
def populate(engine):
Base.metadata.bind = engine
# 创建DBSession类型,即数据库会话类
DBSession = sessionmaker(bind=engine)
# 创建session对象,有了session,就可以用它去执行SQL了
session = DBSession()
user_info = User(school_name='清华')
# 添加到session
session.add(user_info)
session.commit()
连接数据库,并开始执行
# create_engine()用来初始化数据库连接。
# SQLAlchemy用一个字符串表示连接信息:'数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名'
engine = create_engine('mysql+mysqlconnector://root:password@localhost:3306/dbname')
#找到Base下的所有子类,并在数据库中建立这些表
Base.metadata.create_all(engine)
populate(engine)
Base.metadata.bind = engine
DBSession = sessionmaker()
DBSession.bind = engine
session = DBSession()
# 获取User对象中的第一条数据
user = session.query(User).first()
哦,别忘了安装MySQL驱动,不然会报错:ImportError: No module named mysql,在这里用的是mysqlconnector驱动,所以:
sudo pip install mysql-connector
目前,有两个MySQL驱动:
-
mysql-connector-python:是MySQL官方的纯Python驱动;
-
MySQL-python:是封装了MySQL C驱动的Python驱动。
这里有两篇不错的介绍SQLAlchemy的博客
SQLAlchemy 教程 —— 基础入门篇
SQLAlchemy使用经验
网友评论