J-b*_*bob 2 postgresql sqlalchemy
我对 PostGreSQL 和 SQLAlchemy 完全陌生,我试图弄清楚如何在 SQLAlchemy 模型提交到数据库之前在它上运行验证/清理代码。这个想法是为了确保超出 SQL 数据库内置的标准类型强制执行的数据一致性。例如,如果我有一个User建立在 SQLAlchemy 模型上的模型,
class User(db.Model):
...
email = db.Column(db.String())
zipCode = db.Column(db.String())
lat = db.Column(db.Float())
lng = db.Column(db.Float())
...
Run Code Online (Sandbox Code Playgroud)
在提交这份文件之前,我想:
lat&lng字段中。SQLAlchemy 是否提供了一种简单的方法来提供保证在提交执行这样的任意任务之前运行的 Python 代码?
我发现最简单的方法是挂钩更新和插入事件。http://docs.sqlalchemy.org/en/latest/orm/events.html
from sqlalchemy import event
def my_before_insert_listener(mapper, connection, target):
target.email=target.email.trim()
#All the other stuff
# associate the listener function with User,
# to execute during the "before_insert" hook
event.listen(
User, 'before_insert', my_before_insert_listener)
Run Code Online (Sandbox Code Playgroud)
您可以创建执行此类操作的自定义 sqlalchemy 类型。
| 归档时间: |
|
| 查看次数: |
2191 次 |
| 最近记录: |