gpt4 book ai didi

flask - 最佳实践 : Where should re-usable queries be placed?

转载 作者:行者123 更新时间:2023-12-03 16:54:15 25 4
gpt4 key购买 nike

短的
我在 Flask 应用程序中有可重用的 SQLAlchemy 查询,但我不知道最好将它们放在哪里。
更长
阅读时basic tutorials ,如何创建基本的 SQLAlchemy 模型就变得非常清楚了,例如这个代表博客文章的模型:

class Blog(db.Model):

id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.Text())
body = db.Column(db.Text())
date = db.Column(db.Date())
以及如何执行查询,例如按日期获取博客文章:
Blog.query.order_by(Blog.date.desc()).all()
但是这些示例经常显示为 Python 控制台命令,而不是在应用程序的上下文中。在 Flask Mega-Tutorial ,作者似乎完全满足于将简单的查询作为其观点的一部分。
但是,如果我们正在处理复杂和/或可重用的查询语句,将它们放在几个 View 的中间会很快变得丑陋。
那么我应该把它们放在哪里呢?在“正常”MVC 实现中,我会将其放入模型类中。这是 Flask 中的正确方法吗?或者查询是否更接近 View ?我应该创建一个单独的模块吗?或者这里没有最佳实践可以遵循?

最佳答案

对于后代:我最终将模型类中的大部分查询逻辑作为类方法。

问题中的玩具博客类最终会像这样:

class Blog(db.Model):

id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.Text())
body = db.Column(db.Text())
date = db.Column(db.Date())

@classmethod
def get_by_date(cls):
return cls.query.order_by(cls.date.desc()).all()

我还没有遇到这种方法的问题(值得一提)。

关于flask - 最佳实践 : Where should re-usable queries be placed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23742689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com