创建一个自动知道要在Flask,SqlAlchemy,Python中插入还是更新的函数

用户名

我目前有两部分代码,其中一部分将全新的行插入到mySQL数据库中。第二个只是更新一行(如果已存在)。

我正在尝试将这两者合并为一个函数,该函数自动检查ID是否在表中,如果是,则更新,否则插入新行?这是我到目前为止所拥有的:

class Example(db.Model):
        __tablename__ = 'schools'
        _id = db.Column('_id', db.Unicode, primary_key=True)
        establishmentNumber = db.Column('establishmentNumber', db.Unicode)
        laCode = db.Column('laCode', db.Unicode)
        urn = db.Column('urn', db.Unicode)
        name = db.Column('name', db.Unicode)
        phaseOfEducation = db.Column('phaseOfEducation', db.Unicode)
        wondeID = db.Column('wondeID', db.Unicode)

        def __init__(self, _id, establishmentNumber, laCode, urn, name, phaseOfEducation, wondeID):
            self._id = _id
            self.establishmentNumber = establishmentNumber
            self.laCode = laCode
            self.urn = urn
            self.name = name
            self.phaseOfEducation = phaseOfEducation
            self.wondeID = wondeID

            def add_or_update(cls, _id, establishmentNumber, laCode, urn, name, phaseOfEducation, wondeID):
                entity = cls.query.filter_by(_id=school._id.iloc[0]).first()
                print(entity)

                if not entity:
                    entity = cls(school._id.iloc[0], school.establishmentNumber.iloc[0], school.laCode.iloc[0], school.urn.iloc[0], school.name.iloc[0], school.phaseOfEducation.iloc[0], school.wondeID.iloc[0])
                    db.session.add(entity)
                    db.session.commit()

                else:
                    entity.establishmentNumber = 'hello'
                    db.session.commit()
                    print (entity.establishmentNumber)

                return entity

它不会产生任何错误,但是也不会添加或更新。谁能看到我做错了什么?

IamMashed

您有缩进错误。重新缩进像:

def __init__(self, _id, establishmentNumber, laCode, urn, name, phaseOfEducation, wondeID):
    self._id = _id
    self.establishmentNumber = establishmentNumber
    self.laCode = laCode
    self.urn = urn
    self.name = name
    self.phaseOfEducation = phaseOfEducation
    self.wondeID = wondeID

@classmethod
def add_or_update(cls, _id, establishmentNumber, laCode, urn, name, phaseOfEducation, wondeID):
    entity = cls.query.filter_by(_id=school._id.iloc[0]).first()
    print(entity)

    if not entity:
        entity = cls(school._id.iloc[0], school.establishmentNumber.iloc[0], school.laCode.iloc[0],
                     school.urn.iloc[0], school.name.iloc[0], school.phaseOfEducation.iloc[0],
                     school.wondeID.iloc[0])
        db.session.add(entity)
        db.session.commit()

    else:
        entity.establishmentNumber = 'hello'
        db.session.commit()
        print(entity.establishmentNumber)

    return entity

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

python Flask 通过 webhook 运行一个缓慢的函数,需要在 5 秒内做出响应

来自分类Dev

创建一个要在多种方法中多次调用的函数

来自分类Dev

创建一个函数以从PostgreSQL中的另一个表插入一个表

来自分类Dev

使用Flask + SqlAlchemy仅创建一个表

来自分类Dev

在Flask的多个蓝图中插入一个函数

来自分类Dev

在Flask的多个蓝图中插入一个函数

来自分类Dev

更新程序以在 python 中创建一个 CSV 文件

来自分类Dev

在python中创建一个主要函数并传递参数

来自分类Dev

SQLAlchemy:如何选择是在一个列表中还是在另一个列表中?

来自分类Dev

什么时候需要在Python中定义一个单独的函数

来自分类Dev

Python中的一个函数可以迭代要在等式中使用的并发列表

来自分类Dev

为什么要在C中声明一个函数?

来自分类Dev

Python-不知道为什么两个列表看起来相同(该函数中的一个正在更新)

来自分类Dev

Python装饰器和Flask路由:我可以装饰一个函数调用还是仅装饰一个函数定义?

来自分类Dev

我如何创建一个函数来读取用户在C中插入数组的数字?

来自分类Dev

我不知道如何在另一个函数中调用先前创建的函数?

来自分类Dev

创建一个新的工作表并自动向其中插入一个事件

来自分类Dev

创建一个自动填充空值的函数

来自分类Dev

在一个文件中创建一个函数并从另一个文件访问它 - Python

来自分类Dev

在sql中插入一个新行后,如何自动更新表中的所有其他行?

来自分类Dev

PostgreSQL创建触发器,该触发器在表的每次插入或更新时运行一个函数

来自分类Dev

如何在bash中创建一个在其他函数之间插入新文件名的函数?

来自分类Dev

什么被认为是更好的Java代码?创建一个类变量并在每个函数中重用它,还是在每个函数中创建相同类型的新变量?

来自分类Dev

创建一个使用函数[Python 3.4]更新的进度栏。

来自分类Dev

如何编写一个函数,该函数根据多维对象中嵌套的数量自动为循环创建...?

来自分类Dev

如何创建一个 MySQL 触发器,用于在插入或更新后使用另一个表中字段的数据更新表的总和

来自分类Dev

如何自动从另一个工作表中多次插入一个值?

来自分类Dev

为什么要声明/创建一个单独的变量以通过引用进行调用,而不只是在函数调用中创建一个自动对象?

来自分类Dev

在新创建的列中插入一个值

Related 相关文章

  1. 1

    python Flask 通过 webhook 运行一个缓慢的函数,需要在 5 秒内做出响应

  2. 2

    创建一个要在多种方法中多次调用的函数

  3. 3

    创建一个函数以从PostgreSQL中的另一个表插入一个表

  4. 4

    使用Flask + SqlAlchemy仅创建一个表

  5. 5

    在Flask的多个蓝图中插入一个函数

  6. 6

    在Flask的多个蓝图中插入一个函数

  7. 7

    更新程序以在 python 中创建一个 CSV 文件

  8. 8

    在python中创建一个主要函数并传递参数

  9. 9

    SQLAlchemy:如何选择是在一个列表中还是在另一个列表中?

  10. 10

    什么时候需要在Python中定义一个单独的函数

  11. 11

    Python中的一个函数可以迭代要在等式中使用的并发列表

  12. 12

    为什么要在C中声明一个函数?

  13. 13

    Python-不知道为什么两个列表看起来相同(该函数中的一个正在更新)

  14. 14

    Python装饰器和Flask路由:我可以装饰一个函数调用还是仅装饰一个函数定义?

  15. 15

    我如何创建一个函数来读取用户在C中插入数组的数字?

  16. 16

    我不知道如何在另一个函数中调用先前创建的函数?

  17. 17

    创建一个新的工作表并自动向其中插入一个事件

  18. 18

    创建一个自动填充空值的函数

  19. 19

    在一个文件中创建一个函数并从另一个文件访问它 - Python

  20. 20

    在sql中插入一个新行后,如何自动更新表中的所有其他行?

  21. 21

    PostgreSQL创建触发器,该触发器在表的每次插入或更新时运行一个函数

  22. 22

    如何在bash中创建一个在其他函数之间插入新文件名的函数?

  23. 23

    什么被认为是更好的Java代码?创建一个类变量并在每个函数中重用它,还是在每个函数中创建相同类型的新变量?

  24. 24

    创建一个使用函数[Python 3.4]更新的进度栏。

  25. 25

    如何编写一个函数,该函数根据多维对象中嵌套的数量自动为循环创建...?

  26. 26

    如何创建一个 MySQL 触发器,用于在插入或更新后使用另一个表中字段的数据更新表的总和

  27. 27

    如何自动从另一个工作表中多次插入一个值?

  28. 28

    为什么要声明/创建一个单独的变量以通过引用进行调用,而不只是在函数调用中创建一个自动对象?

  29. 29

    在新创建的列中插入一个值

热门标签

归档