Windows for Django

      在〈Windows for Django〉中尚無留言

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。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *