在MVC框架,你通常在哪裏嵌入SQL鍊金術代碼,它是理想的把查詢的Controller Methods
或只使用Model Methods
?當您使用SQL Alchemy時,我們是否需要加入控制器或模型?
query = session.query(User, Document, DocumentsPermissions).join(Document).join(DocumentsPermissions).filter_by(Document.name=="Something")
或者我只是委託此模型方法需要一個參數?什麼是這樣做的首選方式?後者的好處之一是它可以重複使用,它幾乎爲API程序員提供了一個視圖。另一個好處是,如果我把它變成一個類的方法,我可以很容易地勝過這個。這通常有助於定製,特別是在商業軟件中。
#Ctrl.py
self.getdocument("Foo")
#Mdl.py
def getdocument(name):
query = session.query(User, Document, DocumentsPermissions).join(Document).join(DocumentsPermissions).filter_by(Document.name=="Something")
TL; DR:是不是在MVC 「M」 的概念模糊,當你使用ORM的像SQL鍊金術?我沒有任何問題Model
View
Controller
設計模式。
[PS:我不知道這是否屬於代碼審查網站,如果是的話請讓我知道,我可以調過來]
我也沒多想測試,始終與去耦合的優點。 – Nishant