美文网首页Python应用集
SQLAlchemy的字段default默认值

SQLAlchemy的字段default默认值

作者: Solomon_Xie | 来源:发表于2019-01-15 03:31 被阅读2次

我们都知道:

age = Column('age', Integer, default=18)

这样的字段定义方式,即字段age默认值为18。

但是SQLAlchemy中,这个定义会出现一个问题:即默认值只有插入到数据库中才能生效。同样在运行中时,我们如果不用session.query(..)的方法,是无法获得这个值的,也即是说obj.age返回None。
即使session.commit()session.flush()也没用。有人说的ColumnDefault(), server_default=..也都没用。

因为,default只会影响数据库,而不存留在ORM对象里。
所以,除了一些比较麻烦的hack外,还是建议直接给ORM对象的这个column字段显式赋值,比如obj = MyORM(age=18),这样就能获取obj.age了。

参考:Default Objects API
参考:How to apply Column defaults before a commit in sqlalchemy

相关文章

  • SQLAlchemy的字段default默认值

    我们都知道: 这样的字段定义方式,即字段age默认值为18。 但是SQLAlchemy中,这个定义会出现一个问题:...

  • 3.3 SQLAlchemy的参数

    SQLAlchemy的ORM(2) Column常用参数: default:默认值。 nullable:是否可空。...

  • 开发日常记录

    DB: 给字段设置默认值 alter table test modify age default 30; 添加字段...

  • django模型model字段说明

    简单示例 使用模型 字段选项 null blank choise default字段的默认值。可以是一个值或者可调...

  • MYSQL-默认约束

    DEFAULT 当插入记录时,如果没有明确为字段赋值,则自动赋予默认值

  • MySQL不能设置DATE默认值

    由于MySQL目前字段的默认值不支持函数,所以以create_time datetime default now(...

  • myql笔记(二)

    数据约束 对用户操作表的数据进行约束 默认值【default】作用: 当用户对使用默认值的字段不插入值的时候,就使...

  • C# default(T)关键字

    C#关键词default函数,default(T)可以得到该类型的默认值. C#在类初始化时,会给未显示赋值的字段...

  • 探讨 | MySQL约束

    约束 一些关键字对字段能有约束性,分别是以下关键字。 1. 默认值default: 为某字段设置一个默认值,可以为...

  • 数据库、表——增删改

    数据库 数据表 1、创建表——create 字段名称和字段类型必须要包含; default可设置默认值; 主键表示...

网友评论

    本文标题:SQLAlchemy的字段default默认值

    本文链接:https://www.haomeiwen.com/subject/cjqirqtx.html