我在Django製作了一個非常可重用的CMS。我試圖不去硬編碼任何東西,所以我想要一個config.py或應用程序本身的東西。你會如何在Django中創建一個「config」類?
我想在模板中使用它(類似{{config.SITE_NAME}}),只是普通的Python代碼(視圖模型)等
我怎麼會去這樣做呢?
我在Django製作了一個非常可重用的CMS。我試圖不去硬編碼任何東西,所以我想要一個config.py或應用程序本身的東西。你會如何在Django中創建一個「config」類?
我想在模板中使用它(類似{{config.SITE_NAME}}),只是普通的Python代碼(視圖模型)等
我怎麼會去這樣做呢?
settings.py在django中已經達到了這個目的。您可以爲您的應用程序添加自定義設置。
https://docs.djangoproject.com/en/dev/topics/settings/#using-settings-in-python-code
Django中已經有settings.py文件,並從那裏使用的值的接口,足夠的是不是很好嗎?在代碼中訪問的設置很簡單:
from django.conf import settings
do_something_with(settings.MY_CONFIG_VARIABLE)
在模板它需要多一點的工作,像製作例如context processor。這個答案表明你必須製作a context processor that exposes values from settings to your template。
當您創建一個django項目時,它會自動創建一個settings.py
文件。把你的設置,在該文件中,然後: -
from django.conf import settings
settings.YOUR_SETTING
還,如果你有一些設置,這將取決於機器(如生產/測試服務器。)而有所不同。 然後只需添加例如。 conf/local_settings.py
文件,並把機器的具體設置在該文件中,並在settings.py
只是做: -
from conf.local_settings import *
在settings.py
年底確保您從VCS入住(忽略local_settings.py
如在混帳的情況。添加local_settings.py
到.gitignore
而不是local_settings.py約定,您可能會推薦像服務器特定設置,使用環境變量或工具如django-configurations。 – pydanny
正確!,我的個人建議將是http:// zookeeper.apache.org/,但取決於需求。 –