SQLAlchemy入门


SQLALchemy是是什么?

是Python连接SQL数据库的一种工具,需要通过驱动来连接
是Python中使用最广泛的ORM工具之一,即把数据库中的二维数据表结构映射成一个list对象,
list对象的每一个元素是一个tuple

id name
1 ‘Zoro’
2 ‘Sanji’
3 ‘Luffy’

=>

[(1, ‘Zoro’), (2, ‘Sanji’), (3, ‘Luffy’)]


为什么要使用SQLAlchemy?

可以通过对象来操作数据库,避免繁琐的SQL语句


如何使用SQLAlchemy操作MySQL数据库?

基本步骤:
  • 定义映射关系
  • 连接到数据库
  • 通过对象操作
实现代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Import
from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import sessoinmaker
from sqlalchemy.ext.declarative import declarative_base

# Create Base instance
Base = declarative_base()

# Define User class, or other classes
class User(Base):

# Table name
__tablename__ = 'user'

# Table struction
id = Column(Integer, primary_key=True)
name = Column(String(20))
...

# Initial database connection
engine = create_engine('mysql+mysqlconnector://root:yourpassword@localhost:3306/test')

# Create table
Base.metadata.create_all(engine)

# Create DBSession class
DBSession = sessionmaker(bind=engine)


# Operate database
session = DBSession()
session.add(User(id=1, name='Zoro'))

session.commit()
session.close()

说明

  • create_engine():

    • ‘数据库类型+数据库驱动名称://用户名:口令@机器地址:端口号/数据库名’
    • 这里使用的是 mysql.connector驱动 (pip install mysql)
    • Python3可以使用pymysql驱动,即’mysql+pymysql://…’
    • 需要指定已经存在的一个数据库
  • session对象可以通过三种方式操作数据库:

    • A 通过ORM方式 session.add .delete ...
    • B 原生SQL语句 session.execute('SELECT * FROM user WHERE id=%d' % 3)
    • C 通过SQL表达式 session.execute('SELECT * FROM user WHERE id=:param', {'param': 3})


1.如果本文帮到了您,不妨点一下右下角的 分享按钮.
2.您的鼓励是博主写作最大的动力,感谢您的分享和赞赏.