小编Hus*_*whw的帖子

Flask-sqlalchemy - 在不同情况下改变懒惰

以文档中的例子为例

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(50), nullable=False)
    addresses = db.relationship('Address', lazy='dynamic',
        backref=db.backref('person', lazy='select'))
Run Code Online (Sandbox Code Playgroud)

我们只能在构建模型时将lazy参数设置为relationship。但我发现没有文档显示实例化后如何更改它。

在我的大多数情况下

user = User.query.first()
addresses = user.addresses.filter(is_del=0).all()
Run Code Online (Sandbox Code Playgroud)

这是一对多或

wallet = user.wallet
Run Code Online (Sandbox Code Playgroud)

这是一对一模型,我只需将惰性设置动态或选择让模型仅获取我需要的数据。

但是最近我想使用管理前端页面导出数据库中的数据。

user_list = UserModel.query.all()
for x in user_list:
    item = {
        "ID": x.id if x.id else ''
    }
    if 'basic' in fields or is_all_field == 1:
        ex_item = {
            "Email": x.base.account,
            "Full Name": x.base.full_name,
            "Display Name": x.display_name if x.display_name else '', …
Run Code Online (Sandbox Code Playgroud)

sqlalchemy flask flask-sqlalchemy

6
推荐指数
1
解决办法
2131
查看次数

标签 统计

flask ×1

flask-sqlalchemy ×1

sqlalchemy ×1