Flask-SQLAlchemy:在获取数据时处理数据的属性

索拉·施里瓦斯塔瓦

我正在使用以下模型来存储数据。

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    timestamp=db.Column(DateTime(timezone=True), nullable=False)


    def __init__(self, username, timestamp=None):
        self.username = username
        if timestamp is None:
            timestamp =datetime.datetime.now()
        self.timestamp = timestamp

    def __repr__(self):
        return '<User %r>' % self.username

现在,我的问题是:使用

user = User.query.filter_by(username='admin').first()

我了解数据将被提取并转换为User对象?

总而言之,我要完成的工作是,在使用上述查询获取数据时,将自动对数据进行操作。

也就是说,在我的情况下,时间戳是已知的。我将使用pytz.localize()来做到这一点。

我试过了 :

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    username = db.Column(db.String(80), unique=True)
    timestamp=db.Column(DateTime(timezone=True), nullable=False)


    def __init__(self, username, timestamp=None):
        self.username = username
        if timestamp is None:
            timestamp =datetime.datetime.now()
        timestamp = pytz.utc.localize(timestamp)
        self.timestamp = timestamp

    def __repr__(self):
        return '<User %r>' % self.username

我认为是,当对象初始化时,

if(timestamp is none)
    new entry
    initialize timestamp
make timezone aware     #even if fetched from db
self.timestamp=timestamp`

但是,它不起作用。__init__查询数据时不调用。该怎么办?

斯蒂金·迪彭达莱(Stijn Diependaele)

我在sqlalchemy文档中发现,从一行重新创建对象时,它不使用__init __()。

参见:http : //docs.sqlalchemy.org/en/latest/orm/constructors.html

从数据库行重新创建对象时,SQLAlchemy ORM不调用__init__。ORM的过程有点类似于Python标准库的pickle模块,它调用了底层__new__方法,然后直接在实例上安静地还原属性,而不是调用__init__。

如果需要在数据库加载的实例准备好使用之前对其进行一些设置,则可以使用@reconstructor装饰器将方法标记为__init__的ORM副本。每次加载或重建一个实例时,SQLAlchemy都将在不带参数的情况下调用此方法。这对于重新创建通常在__init__中分配的瞬态属性很有用:

from sqlalchemy import orm

class MyMappedClass(object):
    def __init__(self, data):
        self.data = data
        # we need stuff on all instances, but not in the database.
        self.stuff = []

    @orm.reconstructor
    def init_on_load(self):
        self.stuff = []

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

陈旧数据 Flask/SqlAlchemy 的问题

来自分类Dev

从flask-sqlalchemy数据库获取所有模型

来自分类Dev

Alembic自动生成获取Flask-SQLAlchemy绑定的元数据

来自分类Dev

Flask / SQLAlchemy插入数据库

来自分类Dev

Flask-SQLAlchemy数据类型

来自分类Dev

AngularJS + Flask:从Flask后端获取数据到AngularJS

来自分类Dev

Flask和sqlalchemy:使用数据库中存储的路径获取上载的文件

来自分类Dev

从wtforms和flask-sqlalchemy中的数据库查询中获取选择

来自分类Dev

从wtforms和flask-sqlalchemy中的数据库查询中获取选择

来自分类Dev

为什么在使用Flask-SQLAlchemy填充数据库时出现UnmappedInstanceError?

来自分类Dev

带SQLAlchemy的Flask WTForms:在数据库中存储表单时出现UnmappedInstanceError

来自分类Dev

flask / sqlalchemy _init_()添加数据库条目时发生类型错误?

来自分类Dev

在Flask函数中获取JSON数据

来自分类Dev

Python Flask获取要显示的json数据

来自分类Dev

从Flask路线中的wtforms FormField获取数据

来自分类Dev

通过POST从React到Flask获取数据

来自分类Dev

使用pyMongo在Flask中获取MongoDB数据

来自分类Dev

在Flask函数中获取JSON数据

来自分类Dev

Flask-WTF表单未获取数据

来自分类Dev

如何使用flask mongoengine获取数据

来自分类Dev

如何从 Flask 中的 API 获取数据?

来自分类Dev

Flask 不渲染数据

来自分类Dev

保存到Flask-SQLAlchemy会话之外的数据库

来自分类Dev

在Flask中使用SQLAlchemy创建数据库

来自分类Dev

使用flask-sqlalchemy动态链接到数据库

来自分类Dev

无法使用FLASK + SQLALCHEMY将数据插入Mysql

来自分类Dev

将SQLAlchemy表导入没有Flask的熊猫数据框

来自分类Dev

flask-sqlalchemy:在 2 个表之间映射数据

来自分类Dev

Flask-SQLAlchemy 不保存数据库更新

Related 相关文章

  1. 1

    陈旧数据 Flask/SqlAlchemy 的问题

  2. 2

    从flask-sqlalchemy数据库获取所有模型

  3. 3

    Alembic自动生成获取Flask-SQLAlchemy绑定的元数据

  4. 4

    Flask / SQLAlchemy插入数据库

  5. 5

    Flask-SQLAlchemy数据类型

  6. 6

    AngularJS + Flask:从Flask后端获取数据到AngularJS

  7. 7

    Flask和sqlalchemy:使用数据库中存储的路径获取上载的文件

  8. 8

    从wtforms和flask-sqlalchemy中的数据库查询中获取选择

  9. 9

    从wtforms和flask-sqlalchemy中的数据库查询中获取选择

  10. 10

    为什么在使用Flask-SQLAlchemy填充数据库时出现UnmappedInstanceError?

  11. 11

    带SQLAlchemy的Flask WTForms:在数据库中存储表单时出现UnmappedInstanceError

  12. 12

    flask / sqlalchemy _init_()添加数据库条目时发生类型错误?

  13. 13

    在Flask函数中获取JSON数据

  14. 14

    Python Flask获取要显示的json数据

  15. 15

    从Flask路线中的wtforms FormField获取数据

  16. 16

    通过POST从React到Flask获取数据

  17. 17

    使用pyMongo在Flask中获取MongoDB数据

  18. 18

    在Flask函数中获取JSON数据

  19. 19

    Flask-WTF表单未获取数据

  20. 20

    如何使用flask mongoengine获取数据

  21. 21

    如何从 Flask 中的 API 获取数据?

  22. 22

    Flask 不渲染数据

  23. 23

    保存到Flask-SQLAlchemy会话之外的数据库

  24. 24

    在Flask中使用SQLAlchemy创建数据库

  25. 25

    使用flask-sqlalchemy动态链接到数据库

  26. 26

    无法使用FLASK + SQLALCHEMY将数据插入Mysql

  27. 27

    将SQLAlchemy表导入没有Flask的熊猫数据框

  28. 28

    flask-sqlalchemy:在 2 个表之间映射数据

  29. 29

    Flask-SQLAlchemy 不保存数据库更新

热门标签

归档