Python使用Sqlalchemy连接数据库

     阅读:27

 一、简介

SQLAlchemy是用Python编程语言开发的一个开源项目。它提供了SQL工具包和ORM(对象关系映射)工具,使用MIT许可证发行。

SQLAlchemy最初在2006年2月发行,发行后便很快的成为Python社区中最广泛使用的ORM工具之一,丝毫不亚于Django自带的ORM框架。

SQLAlchemy采用简单的Python语言,提供高效和高性能的数据库访问,实现了完整的企业级持久模型。它的理念是,SQL数据库的量级和性能比对象集合重要,而对象集合的抽象又重要于表和行。

二、安装sqlalchemy

pip install sqlalchemy
pip install pymysql

本文使用MySQL作为数据库,使用pymysql作为驱动,因此需要安装pymysql

在连接数据库前,需要使用到一些配置信息,然后把它们组合成满足以下条件的字符串:

dialect+driver://username:password@host:port/database
  • dialect:数据库,如:sqlite、mysql、oracle等
  • driver:数据库驱动,用于连接数据库的,本文使用pymysql
  • username:用户名
  • password:密码
  • host:IP地址
  • port:端口
  • database:数据库

三、连接数据库示例

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base


# 创建对象的基类:
Base = declarative_base()
# 创建引擎,初始化数据库连接:
engine = create_engine('mysql+pymysq://用户名:口令@机器地址:端口号/数据库名')
# 创建session对象
DBSession = sessionmaker(bind=engine)
# 创建session
session = DBSession()
# sql 语句
sql = 'select * from user '
# 执行sql
result = session.execute(sql)   
print(result)
alldata = result.fetchall()  
print(alldata)

session.commit()
session.close()

输出结果:

<sqlalchemy.engine.cursor.CursorResult object at 0x10f4652d0>
[('1', 'TOM', 20), ('2', 'JHON', 21), ('3', 'Bob', 10), ('4', None, 45), ('5', 'Bob2', None)]