2013-01-24 32 views
2

我有這個在我的主執行文件:「真實」在Python全局變量programwide設置

databaseUrl = appPath + '/db/timey.db' 

這是指着我的SQLite數據庫。

我已經做了一些封裝來訪問我的模型(數據/數據庫)。因此,直到databaseURL終於被使用,我需要通過它 - > view.py - > model.py - > db.py. 這將是愚蠢的,因爲例如我的視圖類不需要知道我的數據庫或其路徑。那麼,如何在不經過所有時間的情況下實際使這條路徑「全局」可訪問?

我試圖讓databaseUrl成爲全局的,但我不喜歡這個想法,並且還沒有真正得到它的工作方式。

將信息存儲在外部文件中會是一個矯枉過正的問題,因爲它是唯一的(不變的)全局變量。

謝謝!

回答

5

我不認爲將其存儲在外部文件中根本不會過度。我認爲這是有幫助的設置或配置文件

# settings.py 

import os 
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__)) 
DATABASE_URL = '' 
DATABASE_USER = '' 
DATABSE_PASSWORD = '' 

from myproject import settings 
settings.DATABASE_URL 

這是Django和scrapy做存儲項目數據庫的配置設置,以及其他所有項目設置

另外,如果你有一個數據庫類,它可能是有意義的存儲這些設置裏面呢?我不知道。

settings.py文件可讓您輕鬆設置開發/本地數據庫網址。 要做到這一點,你可以有一個local_settings.py文件,將永遠版本控制之下在您的settings.py文件放在或包裝項目

try: 
    from local_settings import * 
except ImportError: 
    pass 

然後local_settings.py可以覆蓋DATABASE_URL成爲你的開發數據庫!這是一個django項目會議

+0

夠簡單,你說得對。通過閱讀文件,我沿着使用configParse訪問它的路線,或者看起來很慢並且不適合的解決方案,這實際上就是這樣! 謝謝! – AlessandroEmm