[英]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
,因為它僅用於網站。 在創建存儲庫和數據庫並使其運行之后,我在創建一個簡單項目時遵循的步驟是:
python manage.py startapp web
INSTALLED_APPS
中添加 webstatic
文件夾中web.views
中為索引頁面創建視圖web.urls
static
url as to use in python. {% load static %}
是必須的views
並將urls
設置到其他頁面,如關於、聯系等web.models
中定義它們web.admin
將它們傳遞到管理頁面希望你做對了
沒有確切的答案:您可以根據自己的需要組織它,並且Django 不會強迫您將東西放在固定的地方。 Arguments 支持我的觀點:
TEMPATES['DIRS']
。 放入名為“模板”的文件夾后,它將搜索名為模板的文件夾所在的整個項目。 你可以把它放在第一層(在manage.py旁邊),或者一個應用程序內的五個層,沒關系。STATICFILES_DIRS
設置。 如果 Django 想讓您將 static 文件放在一個目錄中,它可能會將 arguments 限制為一個字符串,但它默認為一個列表,您可以盡可能多地填充。 對我來說,我喜歡 Packt 出版的書組織文件的方式: static
、 site_static
和templates
都在基礎級別。
您的應用程序現在很小,但是一旦它變大,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
盡管將static
和media
保持在視線之外。 沒有必要貼上 github 並且會有關於圖像的隱私/版權問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.