FAQ:使用 Django

為什麼我會收到有關導入 DJANGO_SETTINGS_MODULE 的錯誤?

請確認:

  • 環境變數 DJANGO_SETTINGS_MODULE 設定為完整的 Python 模組 (例如 mysite.settings)。

  • 該模組位於 sys.path 中 (import mysite.settings 應該可以正常運作)。

  • 該模組不包含語法錯誤。

我無法忍受你們的樣板語言。我一定要用它嗎?

我們碰巧認為我們的樣板引擎是繼厚切培根之後最棒的東西,但我們承認選擇樣板語言接近於宗教信仰。Django 並沒有任何規定一定要使用樣板語言,所以如果您鍾情於 Jinja2、Mako 或其他任何東西,請隨意使用。

我一定要用你們的模型/資料庫層嗎?

不用。如同樣板系統,模型/資料庫層與框架的其他部分是分離的。

唯一的例外是:如果您使用不同的資料庫函式庫,您將無法使用 Django 自動產生的管理網站。該應用程式與 Django 資料庫層耦合。

我該如何使用圖片和檔案欄位?

在模型中使用 FileFieldImageField 需要幾個步驟:

  1. 在您的設定檔中,您需要將 MEDIA_ROOT 定義為您希望 Django 儲存上傳檔案的目錄的完整路徑。(為了效能,這些檔案不會儲存在資料庫中。) 將 MEDIA_URL 定義為該目錄的基本公開 URL。請確保網頁伺服器的使用者帳戶對此目錄具有寫入權限。

  2. FileFieldImageField 新增至您的模型,並定義 upload_to 選項,以指定 MEDIA_ROOT 的子目錄,用於上傳的檔案。

  3. 所有儲存在您資料庫中的僅會是檔案的路徑 (相對於 MEDIA_ROOT)。您很可能會想要使用 Django 提供的方便的 url 屬性。例如,如果您的 ImageField 稱為 mug_shot,您可以在樣板中使用 {{ object.mug_shot.url }} 來取得圖片的絕對路徑。

我該如何讓變數在所有樣板中都可用?

有時您的所有樣板都需要相同的東西。一個常見的例子是動態產生的選單。乍看之下,將一個通用的字典新增至樣板上下文似乎很合乎邏輯。

在 Django 中執行此操作的最佳方法是使用 RequestContext。有關如何執行此操作的詳細資訊在此:使用 RequestContext

回到頂端