FlaskSQLAlchemy如何在不运行查询的情况下存储查询?

2024-06-24 13:49:44 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我想出了这样的办法:

def someFunction(carPool):
    dict = {
        'redcars': models.RedCar.query.all(),
        'bluecars': models.BlueCar.query.all(),
        'greencars': models.GreenCar.query.all()
    }
    cars = dict[carPool.lower()]

但这里的问题是,每次调用此函数时,所有3个查询都将运行,其结果将存储在字典中

所以我想问,是否有任何方法可以做类似的事情,但不运行所有查询或不编写一堆if-else


Tags: modelsdefallquerycarsdict办法somefunction
1条回答
网友
1楼 · 发布于 2024-06-24 13:49:44

在研究复制switch语句的方法的堆栈溢出时,我遇到了一个解决方案,该解决方案有一个使用lambda函数作为值的字典,因此我提出了以下建议:

def someFunction(carPool):
    dict = {
        'redcars': lambda _: models.RedCar.query.all(),
        'bluecars': lambda _: models.BlueCar.query.all(),
        'greencars': lambda _: models.GreenCar.query.all()
    }
    cars = dict[carPool.lower()]('random var')

也许这不是最好的解决方案,但它完成了任务,所以我将把它留在这里,也许其他人会发现它很有用,并保存一些代码行

相关问题 更多 >