Python 也可以架設網頁伺服器 (Web Server),使用的套件是 Django (發音為- 尖狗,D不發音)。
假設 Web Server 要建立在 d:\server\pyweb 之下,依如下步驟操作。
安裝系統級套件
連入 DOS 命令視窗,執行如下指令
pip install django
安裝 Web Server
先在 d 碟建立 server 目錄,開啟 DOS 命令提示視窗,進入 d:\server,執行如下指令
d: cd \server django-admin startproject pyweb
此時在 d:\server\ 下就會多出 pyweb 目錄,然後底下又會有 manage.py 檔案及 pyweb 目錄,這就表示建立成功了。
server │ ├─ pyweb │ │ ├─ pyweb │ │ │ ├─ asgi.py │ │ │ ├─ setting.py #app安裝檔 │ │ │ ├─ urls.py #網址連結檔 │ │ │ └─ wsgi.py └─ └─ └─ manage.py
啟動 web Server
在 DOS下命令視窗輸入如下指令
cd pyweb
python manage.py runserver 0.0.0.0:7000
上述 “0.0.0.0” 是允許外部能夠連線進來,但因為還有其它的設定要改,所以目前外部的人還是無法連線進來, 只能在瀏覽器輸入 http://localhost:7000
一般網站教學都使用 9000 port。但如果伺服器有安裝 Nginx 時,9000 port 會被 PHP 佔用,用於與 Nginx 的連結,所以建議不要使用 9000。
PyCharm 建立專案
使用 PyCharm 進行網頁開發,就需在 PyCharm 先建立專案,專案的根目錄跟 Web Server的根目錄同樣都是 d:\server\pyweb。
啟動 PyCharm ,開啟新專案, Location 改為 d:\server\pyweb,然後按下 “Create from Existing Sources”。
在 PyCharm 的虛擬環境下,也要再次安裝 Django 套件。
pip install django
另外也可以使用 DOS 進入 d:\server\pyweb 後,執行如下指令建立虛擬環境
python -m venv venv venv\Scripts\pip install django
第一個 venv為指令,表示要建立虛擬環境的意思。第二個 venv 為虛擬環境的目錄名稱,可以更改,但通常都是使用 “venv”。
建立虛擬環境後,開啟 PyCharm,再由 File/Open 開啟 d:\server\pyweb 目錄。
整体目錄
整体的目錄結構如下圖所示。
d:\server\pyweb ├─ venv #虛擬環境設定 │ ├─ etc │ ├─ include │ ├─ Scripts │ └─ Share ├─ pyweb │ ├─ asgi.py │ ├─ setting.py #app安裝檔 │ ├─ urls.py #網址連結檔 │ ├─ wsgi.py └─ manage.py
允許外部連線
上述如果使用 http://localhost:7000 可以正常顯示網頁,但如果使用網域連線,比如 http://mahaljsp.asuscomm.com:7000 則無法連線,這是因為 Django 預設不淮由外部網路連線到 Web Server,所以需作如下設定
1. 防火牆將 7000 打開
2. ip 分享器也將 prot 7000指向 server
3. 修改專案下 pyweb/settings.py, 將 ALLOWED_HOSTS改為如下
#ALLOWED_HOSTS = ['']
ALLOWED_HOSTS = ['*']
開機自動啟動 Web Server
電腦每次重新開機後,都要手動執行 “cd pyweb” 及 ” python manage.py runserver 0.0.0.0:7000″,這也太煩人了。所以請使用如下方法,讓電腦重新開機後自動啟動 Web Server
開始/Windows 系統管理工具/工作排程器/建立基本工作
1. 名稱 : django
2. 選擇 “在電腦啟動時執行”
3. 啟動程式
4. 程式或指令碼 : D:\server\pyweb\venv\Scripts\python.exe
5. 新增引數 : d:\server\pyweb\manage.py runserver 0.0.0.0:7000
6. 在 django按二下,選內容,在一般標籤選取 “不論使用者登入與否均執行”
此種方法在重新開機後即會自動執行,不需要登入的動作。
一般網路上常見的方法,是由 shell:startup 放置 bat 檔。此法必需登入後才會執行,並不適合我們的需求。
使用開機自啟後,如果後續修改程式碼有錯而造成例外,則 Web Server 也會在後台停止而無法連線。此時可以在 Terminal 重新下執 python manage.py runserver 0.0.0.0:7000 進行測試。待修改完成,下次重新開機還是會自動啟動 Web Server。