1,建立本地与数据库表的映射
引用库
from sqlalchemy import create_engine, Table, MetaData
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
建立与数据库的连接,以及表的映射
# 创建连接数据库的engine
engine = create_engine('mysql+pymysql://username:password@host:port/db_name?charset=utf8', convert_unicode=True, echo=False)
#创建model的基类
Base = declarative_base()
#建立映射
metadata = MetaData(bind=engine)
#讲数据库对应的表与本地什么的class 建立映射关系,(下面 product_price 是数据库中表的名字)
class ProductPrice(Base):
__table__ = Table('product_price', metadata, autoload=True)
这样直接操作ProductPrice类就和其他完整定义的model一样。如果有特殊的column,有可能映射无法完全还原,这时候再通过Column('columnname', datatype) 附加定义
2,操作数据表
#建立数据库连接
Session = sessionmaker(bind=engine)
session = Session()
#查询、修改数据
price_obj = session.query(ProductPrice).filter_by(product='***').first()
price_obj.price = 16.15
session.commit()
#添加数据
price_obj = ProductPrice(...)
session.add(price_obj)
session.commit()
#删除数据
price_obj = session.query(ProductPrice).filter_by(product='***').first()
session.delete(price_obj)
session.commit()