簡體   English   中英

簡單的 Django 項目結構

[英]Simple Django Project Structure

我已經為我的 django 項目構建了虛擬環境和根目錄,這將是一個用於活動場地的簡單網站。 該網站將在導航欄上有幾個不同的選項卡,向用戶顯示一些場地細節,包括定價、照片庫和場地歷史。

我的問題是 web 關於“項目結構的最佳實踐”的信息有很多相互矛盾的信息。

我應該為主頁和隨后的每個頁面創建一個應用程序,還是只創建一個包含項目大部分內容的核心應用程序? 如果是這樣,這個項目是一個很好的例子嗎? --> https://github.com/justdjango/django-ecommerce

有誰知道我可以參考的簡單項目?

同樣,這是一個非常簡單的項目,只有幾個 url,沒有 forms。

我將非常感謝任何花時間閱讀並幫助我的人。

根據我使用 Django 的經驗,沒有明確的答案,這完全取決於您以及您對什么感到滿意,我希望這會有所幫助。

模板/靜態文件

我將這些模板和 static 文件放在全局模板/靜態目錄中,而不是在每個應用程序中,如果您是單獨或在一個小團隊中工作的全棧開發人員,您可以創建每個應用程序的模板/靜態目錄。 這真的只是口味問題。

[projectname]/
├── [projectname]/
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   └── wsgi.py
|
|── [App1]
|── [static]/ 
|   ├── [css]
|   ├── [Javascript]
|   └── [Images]
|
|── [templates]
|── manage.py
└── requirements.txt

在我看來,您只需要一個應用程序,我們稱它為web ,因為它僅用於網站。 在創建存儲庫和數據庫並使其運行之后,我在創建一個簡單項目時遵循的步驟是:

  1. 創建 static、媒體和模板文件夾
  2. python manage.py startapp web
  3. 在 settings.py 文件的INSTALLED_APPS中添加 web
  4. 將 html 文件放入 templates 文件夾和其他文件夾(js,css,images,fonts..)在static文件夾中
  5. 在 project_name > urls.py 中將 URL 設置為新應用
  6. web.views中為索引頁面創建視圖
  7. 在 web.urls 中創建剛才創建的視圖web.urls
  8. Change every links of images, js and css files in index.html to static url as to use in python. {% load static %}是必須的
  9. 該頁面現在將在 localhost 中加載。
  10. 在 web 應用程序中創建其他views並將urls設置到其他頁面,如關於、聯系等
  11. 創建模型列表您將需要並在web.models中定義它們
  12. 使用web.admin將它們傳遞到管理頁面
  13. 通過將數據從模型傳遞到模板使其動態化。

希望你做對了

沒有確切的答案:您可以根據自己的需要組織它,並且Django 不會強迫您將東西放在固定的地方。 Arguments 支持我的觀點:

  1. Django 的模板設置: TEMPATES['DIRS'] 放入名為“模板”的文件夾后,它將搜索名為模板的文件夾所在的整個項目。 你可以把它放在第一層(在manage.py旁邊),或者一個應用程序內的五個層,沒關系。
  2. Django 的STATICFILES_DIRS設置。 如果 Django 想讓您將 static 文件放在一個目錄中,它可能會將 arguments 限制為一個字符串,但它默認為一個列表,您可以盡可能多地填充。

對我來說,我喜歡 Packt 出版的書組織文件的方式: staticsite_statictemplates都在基礎級別。

您的應用程序現在很小,但是一旦它變大,go 通過每個應用程序訪問例如模板會很煩人。 如果您將所有內容放在一起,則可以輕松訪問所有內容。

所以它是這樣的:

|- project
|- app1
|- app2
|- site_static  // your custom static files
    |- css
    |- js
|- static    // bootstrap, webpack stuffs, etc.
|- media     // user uploads and images used in site
|- templates
|- manage.py
|- requirements.txt

盡管將staticmedia保持在視線之外。 沒有必要貼上 github 並且會有關於圖像的隱私/版權問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM