Re: [問題] Django site的首頁與登入頁面該放哪邊?
※ 引述《NewSpec (新規格)》之銘言:
: 最近在試著用Django做一個網站
: 這個網站主要有兩大功能, 會以app的方式製作
: 但現在比較疑惑的地方是:
: 首頁以及登入的template和view該放哪邊?
: 我目前的project layout是這個樣子:
: <project_name>/
: - manage.py
: - requirements.txt
: - <project_name>/
: - __init__.py
: - settings.py
: - url.py
: - wsgi.py
: - <app1>/
: - <app2>/
: 當然, 網站裡面關於兩個網站的功能當然就透過 app1/ 和 app2/ 存取
: 但像首頁這種東西呢? / 以及 /index
: 還有註冊與登入頁面 /signup 和 /login
: 我該把它們組織到專案的哪邊呢? 是<project_name>目錄下嗎?
: 或者開一個名叫"general"的app來放這些與site相關而與個別app功能較無關的view?
: 請大家能給予一些指導, 謝謝:)
這問題問 10 個人可能會有 11 個答案XD
基本上你高興就好, Django 不管, 其他人大概也不會管
我個人習慣的 layout 是這樣
<project_name>/<project_name>/ 各 app module
這一層放有的沒 這個目錄是版 urls.py
的東西, 例如 本控制的 root views.py
IDE 的檔案, directory templates/
static 和 wsgi.py
media 目錄等 manage.py
settings.py
所以首頁的 view 就會在第三層的 views.py
Template 當然就是在同一個目錄的 templates
我也有看過有人是把 <project_name> 和其他 apps 放在同一級, 這樣也是合理
還有另外一派比較極端的是認為首頁應該特殊處理
這類人的首頁沒有自己寫的 view logic, 只用一個 TemplateView.as_view
首頁 template 的位置是用 settings 裡的 TEMPLATE_DIRS 來找
然後頁面裡的所有東西都靠 template tags 來處理
(各 tag 的位置視功能塞到各個 app 裡面)
不管你用哪一種方法, 其實增加一個 core app 都會是個好主意
把一些共通的底層邏輯獨立出來, 不要每個 app 互相引用來引用去
最好有個明確的主從架構, 這樣也可以幫助避免 circular import 的問題
--
「我最想要的同伴嘛,首先是要笑口常開,其次是我們能永遠不會發生誤會。
如果這些都能辦到的話,嗯,如果他是世界上第一流的橋手,也還不錯。」
-- 班尼多‧加羅素,前義大利藍隊成員
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.32.81.146
※ 編輯: uranusjr 來自: 114.32.81.146 (04/27 00:37)
討論串 (同標題文章)
Python 近期熱門文章
PTT數位生活區 即時熱門文章