本文共 1244 字,大约阅读时间需要 4 分钟。
学习学SQLAlchemy基本篇后,我们来看看进阶篇
(基本篇链接:)
下面开始介绍一些进阶的知识。
如何批量插入大批数据?
可以使用非 ORM 的方式:上面我批量插入了 10000 条记录,半秒内就执行完了;而 ORM 方式会花掉很长时间。
如何让执行的 SQL 语句增加前缀?
使用 query 对象的 prefix_with() 方法:
如何替换一个已有主键的记录?
使用 session.merge() 方法替代 session.add(),其实就是 SELECT + UPDATE:或者使用 MySQL 的 INSERT … ON DUPLICATE KEY UPDATE,需要用到 @compiles 装饰器,有点难懂,自己搜索看吧:《SQLAlchemy ON DUPLICATE KEY UPDATE》 和 sqlalchemy_mysql_ext。
如何使用无符号整数?
可以使用 MySQL 的方言:
id = Column(INTEGER(unsigned=True), primary_key=True)
模型的属性名需要和表的字段名不一样怎么办?
开发时遇到过一个奇怪的需求,有个其他系统的表里包含了一个“from”字段,这在 Python 里是关键字,于是只能这样处理了:
如何获取字段的长度?
Column 会生成一个很复杂的对象,想获取长度比较麻烦,这里以 User.name 为例:
如何指定使用 InnoDB,以及使用 UTF-8 编码?
最简单的方式就是修改数据库的默认配置。如果非要在代码里指定的话,可以这样:转载地址:http://cxvws.baihongyu.com/