2010-09-12 126 views
1

有沒有人遇到過django項目的「設置應用程序」的想法?Django設置應用程序?

這是由管理員(不是開發人員,因此settings.py失敗)使用管理面板設置的一組應用程序變量。

是否有任何應用程序可以使用?

編輯 我可能沒有說清楚我的問題。我不是指編輯像連接設置這樣的東西,而是像「文件大小限制」這樣的東西。

+1

什麼設置?項目設置或應用程序設置? – 2010-09-12 22:55:40

回答

5

有一個非常不錯的應用程序,這樣做,所謂的Django dbsettings。官方回購多年未更新,但我有一個最新的分叉my github page

+0

謝謝,我想知道是否有人使用這種方法。我最終創建了自己的dbsettings應用程序(我只需要幾個設置),併爲每組設置(如FileSizeLimitsModel)設置了一個模型。我也做了一些自定義標籤,所以它們在我需要的每個視圖中都可見。 – mhaligowski 2010-09-16 08:00:32

1

問題是你將如何存儲設置。

原因...如果將設置存儲在數據庫中,將會很麻煩,因爲在您建立數據庫連接之前,大多數代碼已經被初始化(使用之前的設置)。

如果是文件系統,那意味着你將不得不包含一個正在被你的web服務器修改的Python文件,這對我來說聽起來像是一個巨大的安全風險。

所以......在我看來,這是可以做到的,但我會投反對票,因爲它很危險。如果事情應該可以從網絡配置,在應用程序中實現:)

1

這聽起來有點像你問「管理員如何更改設置(如數據庫連接參數)而不更改settings.py

如果你的管理是不是蟒蛇不夠熟悉而直接改變settings.py文件,你可能會考慮給管理員一個簡單的文件進行編輯,或許config file你從settings.py加載。然後,您的所有管理員必須執行的操作是編輯配置文件並重新啓動服務器。

這有一個額外的好處,你可以限制配置文件只有那些你的管理員需要弄亂的參數(如數據庫連接參數)。

(另一種選擇是,以獲得更好的管理......)

+0

+1:我們以與配置文件方法不同的方式(可能不是很好)處理了這個問題。我們爲'local_early_settings.py'和'local_late_settings.py'設置了'try/except',它們在主settings.py文件的頂部和底部附近被選中。這些原本旨在允許不同開發人員的獨立工作空間中進行不同的設置,但當我們的一位知識欠缺的人將早期/晚期文件中的一個擰緊時,它也很有用。哦,這兩個文件也被列在.hgignore文件中,所以它們不會意外地在生產中結束。 – 2010-09-13 03:57:52

+0

我不會讓網站管理員(我不是指dba或sysadmin)來更改數據庫連接設置。 – mhaligowski 2010-09-16 07:58:06

+0

-1有時候,您有需要由非技術精明的個人控制的全網變量。即使給他們一個更簡單的文件,也需要讓他們對服務器進行CLI訪問,這可能會導致安全或技術問題。有時候一個不錯的鍵值界面很好。 – 2014-02-20 00:12:20