Quiz由多道題目及答案組成,需要一個資料庫儲存這些項目,
在settings.py做資料庫設定後就可以使用。首先在settings.py會看到很多英文大寫的變數,資料庫的設定就是在DATABASES做設定,Django初步設定sqlite3為資料管理系統,另外可以看到資料庫檔案db.sqlite3也幫我們建好放在專案裡面。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
BASE_DIR指的是我們專案的根路徑,就是最外層mysite的路徑:
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
最裡面的括號是settings.py的路徑,再外面一層是專案mysite的路徑,最外面的括號呢就是mysite資料夾的路徑。
若還只是在編寫專案的階段,通常會開啟Debug(DEBUG=True),因為測試時若出現錯誤,網頁會提示錯誤的程式碼,方便我們解決問題。但當網站正式上線記得要關閉,改設定DEBUG=False。
Django本身有提供下面幾個應用程式,給開發者了一大助力,但到目前為止我也還不是每個都認識跟用過。admin是一個網站後台管理系統,很快就會用上他;auth可以做到簡單的用戶網站權限管理;sessions跟cookies用意一樣;staticfiles可以幫助開發者管理網站上的靜態檔案。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
前面有寫到,我們需要自己新增一個放置html檔的資料夾,當到該步驟時,需要回到這裡做路徑的設置。
可以改為所在地的時區,台灣的話就是改成TIME_ZONE = 'Asia/Taipei'
這次專案不用默認的sqlite3,而是使用postgresql,因據我所知Heroku看起來不支援使用sqlite3,但一開始耳朵很硬,想著先用sqlite3去跑,結果就是怎麼樣都行不通,忘記是出現怎樣的error,等寫到部署網站時再來回頭試一次好了XD
在settings.py改為使用postgrsql之前,我們的電腦必須先安裝postgresql,另外可以使用pgadmin4(一款postgresql的GUI)輔助我們查詢資料庫的狀態等,這部分篇幅會比較長,明天再開獨立一篇來寫吧~