我一直在研究 FastAPI 后端,我主要關注這里使用的專案結構,因為這個專案是由 FastAPI 創建者創建的,似乎是一個很好的參考。
到目前為止,我的專案擴展性很好,但我只需要處理簡單的 CRUD 資料庫操作。現在我需要使用更復雜的資料庫查詢,我不確定這些查詢是否適合當前的專案結構。是否有我應該遵循的標準檔案夾結構,或者我應該只創建一個“查詢”檔案夾并完成它?
uj5u.com熱心網友回復:
通常將該功能分成不同的服務,其中每個服務都有自己的責任。AProductService將具有根據業務規則(和需求)檢索產品的方法,并且將是與這些需求相關的查詢所在的位置(以及其他功能)。
您還將看到這被稱為基于存盤庫的布局,其中存盤庫是對“如何保存和檢索給定資料”的抽象。我更喜歡將其構建為服務,因為在許多情況下擁有使用存盤庫的服務是多余的(在應用程式的生命周期內,您真正更改底層存盤庫實作的頻率是多少?)。
foo/
schemas/
services/
user.py
product.py
posts.py
服務可能是這樣的:
class ProductService:
def __init__(self, db):
self.db = db
def get_products_for_user(user_id: int, pagination: Pagination):
return self.db.query(Product).filter(Product.user_id == user_id)[pagination.offset:pagination.offset pagination.hits]
.. ETC。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/492961.html
