我剛剛開始研究django項目(同時學習django),並且遇到了一些設計問題,我無法用我有限的知識來回答,所以我決定去問問它這裏。無論如何這裏的問題: 1)你會在哪裏把原始查詢。將行查詢放入view.py文件可以嗎?我個人的意見是隻將它們放在models.py文件中。 2)你在哪裏可以查詢數據庫?你可以在models.py,views.py,模板中調用查詢方法嗎?我認爲他們應該在models.py或views.py中,但不在模板中。特別是像「MyModel__attribute_set__all」的調用不應該在模板中使用。Django項目設計問題
因爲我是django(和python)的新手,所以我不確定我是否對此有正確的想法。我很欣賞任何反饋。
我不相信第一個。我認爲我們不應該在視圖中使用原始查詢,這是爲什麼:原始查詢是我們在不控制django框架的情況下查詢db的特殊情況。例如,如果我們想要更改數據庫實現,那麼必須檢查這些查詢是否與新後端兼容。另外,由於它們直接在db上運行,我們可能需要在代碼中添加額外的異常處理。如果這些查詢與我們的django代碼分開,我們可以輕鬆地進行這些驗證而不影響其他代碼。再說一遍,如果只有其中的幾個,他們可能會好起來 – yilmazhuseyin 2010-10-29 18:52:53
我很高興地同意。我對誤會深表歉意。你用「原始」,然後「行」這個詞,所以我感到困惑。我從來沒有找到原因使用「原料」 - 我甚至不知道它存在(新的1.2)。我不使用它,我認爲情況必須非常極端以證明它的正確性,但顯然有人已經找到了需要。很高興知道它在那裏,我可能會回到使用「Q」,然後訴諸生。 – 2010-10-29 22:07:42