1、安裝sqlalchemy
pip install sqlalchemy
2、導入必要的包及模塊
import sqlalchemy
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
3、創建數據庫連接實例
#創建數據庫連接實例(#"數據庫類型+數據庫模塊://用戶名:密碼@主機/庫名")
db=sqlalchemy.create_engine("mysql+pymysql://root:q1q1q1@localhost/a")
4、創建一個元類的繼承類
base = declarative_base(db)
5、定義一個表(使用類)繼承base
class Student(base):
__tablename__ = "student"
id = sqlalchemy.Column(sqlalchemy.Integer,primary_key=True)
name = sqlalchemy.Column(sqlalchemy.String(32))
age = sqlalchemy.Column(sqlalchemy.String(32))
6、創建表
base.metadata返回sqlalchemy.schema.MetaData對象,它是所有Table對象的集合,調用create_all()該對象會觸發CREATE TABLE語句,如果數據庫還不存在這些表的話。
if __name__ == "__main__":
base.metadata.create_all(db)
腳本運行前a數據庫中的表:

運行上述代碼之后,a數據庫表:

7、綁定連接並創建session
cursor = sessionmaker(bind=db) #得到的時一個類
session = cursor() #實例
8、增(插入數據)
①插入一條數據
stu = Student(
id = 1,
name = "張1",
age = 18
)
session.add(stu)
session.commit()

②同時插入多條數據
session.add_all([
Student(id=2,name="張2",age=19),
Student(id=3,name="張3",age=20)
])
session.commit()

9、查詢
①查詢所有數據
all_data = session.query(Student).all()#得到的是一個可迭代對象
for data in all_data:
print("id:%s__name:%s__age:%s"%(data.id,data.name,data.age))

②根據條件查詢多條數據
many_data = session.query(Student).filter_by(age=18)
print(many_data)#實際是一個sql查詢語句,其還是一個存儲一個對象的帶迭代內容
for data in many_data:
print("id:%s__name:%s__age:%s"%(data.id,data.name,data.age))

還可以通過序列解包的方式獲取數據
many_data = session.query(Student).filter_by(age=18)
data, = many_data
print("id:%s__name:%s__age:%s"%(data.id,data.name,data.age))
③查詢一條數據
data = session.query(Student).get(ident=3) #查一條,只能以主鍵查
print("id:%s__name:%s__age:%s"%(data.id,data.name,data.age))
10、刪除
#先查詢一條
data = session.query(Student).get(ident=3)
#然后刪除
session.delete(data)
#然后提交操作
session.commit()

11、修改
# 先查詢一條
data = session.query(Student).get(ident=2)
#然后刪除
data.name = "老李頭"
#然后提交操作
session.commit()

