專案下的環境設定、如何建立Django App。
Settings.py
在Windows terminal透過tree指令可查看專案結構 Mac環境下要使用tree指令則需另外安裝package :
shell
brew install tree
從專案結構可以發現,根目錄下有個和專案名稱相同的資料夾,其中主要有3個檔案:
- settings.py : 專案設定檔
- url.py : 網頁路徑設定
- wsgi.py : 伺服器閘道介面設定
* manage.py為負責專案管理的Python指令檔 * 什麼是WSGI(Web Server Gateway Interface)? 簡而言之,WSGI就是Server與Web App之間的溝通介面
開啟settings.py,可以看到官方註解寫得挺詳細的,主要設定:
- 除錯模式設定為True表示網頁拋出Error會直接顯示錯誤訊息,正式發佈網站前務必記得關閉,以免網站弱點就這麼公開了(汗)
shell
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
- 新建立的App必須在這裡被定義
python
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
‘{app_name}’,
]
- 網頁模版路徑
在專案目錄下建立templates資料夾:
shell
md templates # build folder for web templates
* Mac terminal建立資料夾指令和Linux同為mkdir
接著在settings.py中設定路徑,於TEMPLATES中的'DIRS'加入: os.path.join(BASE_DIR, 'templates')
python
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
- 語系、時區:修改為繁體中文、台灣時區
python
LANGUAGE_CODE = 'zh-Hant'
TIME_ZONE = 'Asia/Taipei'
- 靜態文件路徑
在專案目錄下建立static資料夾:
shell
md static # build folder for static files(e.g. css, images...)
接著在settings.py中設定路徑,於"STATIC_URL"後面加上:
python
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
Django App
建立應用程式,專案底下可建立多個App,而每個App都可以視為Package
shell
# start virtual environment first
cd {project_name}
python manage.py startapp {app_name} # build application
python manage.py makemigrations {app_name(optional)} # build data migration for database
python manage.py migrate {app_name(optional)} # data synchronization
* makemigrations與migrate為資料庫同步設定,預設為對所有應用程式同步,因此應用程式名稱為選填