短い
Flask アプリケーションに再利用可能な SQLAlchemy クエリがありますが、どこに配置するのが最適かわかりません。
より長いです
基本的なチュートリアルを読むと、ブログ投稿を表す次のような基本的な 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では、著者はビューの一部として単純なクエリを使用することに完全に満足しているようです。
しかし、複雑な、および/または再利用可能なクエリステートメントを扱っている場合、それらを複数のビューの真ん中に配置すると、見苦しくなります。
では、どこに置くべきですか?「通常の」MVC 実装では、これをモデル クラスに配置します。それはFlaskでの正しいアプローチですか?または、クエリはビューに近いですか? 別のモジュールを作成する必要がありますか? または、ここに従うべきベストプラクティスはありませんか?