Python Django 概念與實作 - 佈置環境
前言
繼Python Flask 概念與實作系列之後,對web app與server相關設定也有一些的了解,使用完Flask再學Django似乎比較容易上手,而Django 概念與實作這個系列是整理我目前的筆記,方便再次使用時更容易查看。
目前 Python Django 概念與實作 大致規劃為
- 佈置環境
- Django View(一)
- Django Model(二)
- Django Test(三)
- Django Forms(四)
- Django Admin(五)
- 登入功能(六)
- Blog功能(七)
Django
與各種python專案相同,先建立一個專案資料夾,再建立虛擬環境,避免安裝套件時打架🥊
- 建立專案資料夾
myDjango - 進入資料夾內,
python3 -m venv .vnev - 進入虛擬環境,
source .venv/bin/activate - 更新pip版本,
pip install --upgrade pip - 安裝django,
pip install django
Create Django Project
建立django專案資料夾有兩個方法:
- 直接在當前資料夾建立新專案
django-admin startproject website1
2
3
4
5
6
7
8
9
10myDjago
├── .vnev
└── website
├── manage.py
└── website
├── __init__.py
├── asgi.py
├── settings.py
├── urls.py
└── wsgi.py - 在現有資料夾建立專案
django-admin startproject main ../myDjango1
2
3
4
5
6
7
8
9myDjago
├── .vnev
├── main
│ ├── __init__.py
│ ├── asgi.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── manage.py
這裡我使用第二種方法看起來比較簡潔(少一層),但若之後要整個專案打包的話建議使用第一種(避免將開發參數打包)。
但其實差異不大,自行選擇即可
1 | . |
P.S. asgi.py非同步部署還沒有機會使用,待我做好功課再補上…
Run Server
安裝好後,第一件事情當然是叫它跑起來(兇!)python3 manage.py runserver 或直接./manage.py runserver也可以
1 | (.venv) mc@McMacBook-Air myDjango % ./manage.py runserver |
在這裡可以訪問本地端的server介面,有顯示火箭🚀代表有成功運行
Tips
若本地端8000 port已被使用,可改使用其他portpython3 runserver 8888
Setting
接著我們修改./main/setting.py設定。
1 | # setting.py |
存檔後再次訪問,可以看到已經成功切換語言

因為當前設定DEBUG = True,存檔後django會自動更新所有.py設定(.html, .css, .png等靜態資源除外,必須手動重啟)
setting.py中有許多變數是建議另外儲存,如SECRET_KEY, DEBUG等等,且這些變數也不建議納入git版本控制到雲端。
因此我們將這些變數另存至.env中
- 安裝
pip install dotenv - 新增
.env,將setting.py中的SECRET_KEY複製過來1
2
3# .env
SECRET_KEY = 'django-insecure-!z#0k5!@n7w5eh...+55p'
DEBUG = True
- 修改
setting.py1
2
3
4
5
6
7
8
9
10
11
12
13
14
15# setting.py
# 略...
from dotenv import load_dotenv
import os
BASE_DIR = Path(__file__).resolve().parent.parent # 與manage.py相同路徑
# 引入環境變數檔
ENV_FILE_PATH = BASE_DIR / ".env"
load_dotenv(ENV_FILE_PATH)
SECRET_KEY = os.getenv("SECRET_KEY")
DEBUG = os.getenv("DEBUG")
1 | 當前檔案部署 |
結論
- 部署django
- 修改
setting.py - asgi非同步部署