本部落格已搬遷, 3秒後跳轉...

Django2.0筆記(2):專案設定與應用程式 | Laplace's Lab

Django2.0筆記(2):專案設定與應用程式

專案下的環境設定、如何建立Django App。

Settings.py

在Windows terminal透過tree指令可查看專案結構

Mac環境下要使用tree指令則需另外安裝package :

1
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會直接顯示錯誤訊息,正式發佈網站前務必記得關閉,以免網站弱點就這麼公開了(汗)

    1
    2
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True
  • 新建立的App必須在這裡被定義

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    # 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資料夾:

1
md templates  # build folder for web templates

* Mac terminal建立資料夾指令和Linux同為mkdir

接著在settings.py中設定路徑,於TEMPLATES中的’DIRS’加入:
os.path.join(BASE_DIR, ‘templates’)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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',
],
},
},
]

  • 語系、時區:修改為繁體中文、台灣時區

    1
    2
    3
    LANGUAGE_CODE = 'zh-Hant'

    TIME_ZONE = 'Asia/Taipei'
  • 靜態文件路徑

在專案目錄下建立static資料夾:

1
md static  # build folder for static files(e.g. css, images...)

接著在settings.py中設定路徑,於”STATIC_URL”後面加上:
1
2
3
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]


Django App

建立應用程式,專案底下可建立多個App,而每個App都可以視為Package

1
2
3
4
5
6
# 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為資料庫同步設定,預設為對所有應用程式同步,因此應用程式名稱為選填

0%