sqlalchemy是很强大的orm框架,一般的教程都是从新建一个表开始教,这种情况下我们能直接拿到表对象然后方便的操作,但是对于已经存在的表的操作,网上教程并不多,而实际上,对于测试同学来说,这种情况才是最普遍的。我在系统集成测试框架中数据库操作便使用了sqlalchemy,这里分享一下,顺便记录踩过的一些不那么明显却很致命的坑。
首先,我们可以创建一个自定义对象,它可以去组合sqlalchemy提供的种种功能。
from sqlalchemy.orm.exc import UnmappedClassError
from sqlalchemy.ext.declarative import declared_attr, declarative_base
from sqlalchemy import create_engine, MetaData, Table
from sqlalchemy.orm import sessionmaker, class_mapper, Query
class DbRoot(object):
def __init__(self, **kwargs):
"""
orm基础db对象,通过实例化该对象得到db实例,然后创建类对象继承自db.Model,便可以对相应表进行操作
:param kwargs: dialect 数据库类型
driver 数据库驱动
user 用户名
password 用户密码
host 数据库地址
port 端口
database 数据库名
"""
url = '{diale