Skip to content
Django2.0筆記(2):專案設定與應用程式
📆2018-09-22 | 📂Software

專案下的環境設定、如何建立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為資料庫同步設定,預設為對所有應用程式同步,因此應用程式名稱為選填

Last updated: