SQLAlchemy“采用简单的Python语言,为高效和高性能的数据库访问设计,实现了完整的企业级持久模型”。
SQLAlchemy的理念是,SQL数据库的量级和性能重要于对象集合;而对象集合的抽象又重要于表和行。
因此,SQLAlchemy采用了类似于Java里Hibernate的数据映射模型,而不是其他ORM框架采用的Active Record模型。
不过,Elixir和declarative等可选插件可以让用户使用声明语法。
SQLAlchemy首次发行于2006年2月,并迅速地在Python社区中最广泛使用的ORM工具之一,不亚于Django的ORM框架。
Demo001
如何生成数据库对应的Models?
1、pip install sqlacodegen pip install pymysql(此前已安装,此行可省略)
接下来一行代码还原数据库:
2、sqlacodegen mysql+pymysql://username:password@127.0.0.1:3306/db_name > mode
更多可用参数,请输入:
3、sqlacodegen -h(比如指定结果文件的存储位置)
Demo002
我有一个旧数据库,它使用各种存储过程为几列创建默认值。
尝试查找名称并向我的代码添加查询将或多或少地禁止,
更不用说维护方面的噩梦了。
一个可行但不一定是最优的解决方案:
在需要忽略的列上,增加参数:server_default='fnord'