假設要將 Web Server 建立在 d:\server\pyweb之下,請依如下步驟操作。
系統級安裝 django
先進入 DOS 命令模式,輸入如下指令
pip install django
建立專案
由 DOS 進入 d:\server,並由 django-admin startproject 開始建立專案
d: cd \server django-admin startproject pyweb
此時在d:\server\下,就會多出 pyweb目錄,然後在 pyweb下會有 manage.py 檔案及 pyweb 目錄
啟動 web Server
此刻已經建立好一個 web Server了,在DOS下輸入如下指令即可啟動
cd pyweb python manage.py runserver 7000
此時到瀏覽器輸入 http://localhost:7000即可看到如下畫面
一般網站都是說明使用 9000 port,但如果伺服器有安裝 Nginx的話,9000 port 會被 PHP佔用,用於與 Nginx 的連結,所以建議盡量不要使用 9000。
建立虛擬環境
為什麼要建立虛擬環境呢,因為要使用 pycharm 進行網頁開發。可以使用 Pycharm建立,也可以使用 DOS 命令。
第一種方式,開啟 pycharm ,直接建立新專案,將位置改為 d:\server\pyweb,然後按下 “Create from Existing Sources”。
第二種方式,進入 d:\server\pyweb 後,執行如下指令
python -m venv venv venv\Scripts\pip install django
第一個 venv為指令,表示要建立虛擬環境的意思。第二個 venv 為虛擬環境的目錄名稱,可以更改,但通常都是使用 “venv”。
使用第二種方式建立虛擬環境後,就可以開啟 Pycharm,由 File/Open開啟 d:\server\pyweb目錄。
Pycharm 有時候怪怪的,如果 Pycharm 顯示目前沒有編譯器,請由 File/Setting/Project pyweb/Python Interpreter/ 按下右上角齒輪圖示,再選取show all
然後按下上方的 “+” ,再選取 Existing environment即可
整体目錄
整体的目錄結構如下圖藍色所示。
d:\server\pyweb
├─ venv #虛擬環境設定
│ ├─ etc
│ ├─ include
│ ├─ Scripts
│ └─ Share
├─ pyweb
│ ├─ asgi.py
│ ├─ setting.py #app安裝檔
│ ├─ urls.py #網址連結檔
│ ├─ wsgi.py
└─ manage.py
建立首頁
撰寫網頁
現在已經可以在Pycharm開始撰寫網頁了。首先在專案名稱按右鍵,new/Python file,輸入index.py,然後輸入如下代碼
from django.http import HttpResponse
def html(request):
s= \
'<html>' \
'<head>' \
'<title>測試</title>' \
'</head>' \
'<body>' \
'<table border="1" cellpadding="0" cellspacing="0">' \
'<tr>' \
'<td>第一格</td>' \
'<td>第二格</td>' \
'<td>第三格</td>' \
'</tr>' \
'<tr>' \
'<td>第四格</td>' \
'<td colspan="2">第五格</td>' \
'</tr>' \
'</table>' \
'</body>' \
'</html>'
return HttpResponse(s)
HttpResponse這個方法的用途,就是將字串傳送給客戶端瀏覽器,所以字串必需是 html的格式。
安裝app
開啟 pyweb 目錄下的設定檔settings.py,在 “INSTALLED_APPS” 下新增 “index”,此即表示 index.py為一支 app
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'index',
]
設定網址連結
網址連結是在設定某個網址要連結到某個 .py 檔裏的某個函數,設定檔為 pyweb/urls.py。請在 urls.py 檔案新增底下藍色的代碼. path(”, index.html) 其中的 ” 空字串, 表示在網址後並不指名任何檔名. 如 http://mahaljsp.asuscomm.com:7000/(空白, 沒任何檔名)
from django.contrib import admin from django.urls import path import index urlpatterns = [ path('admin/', admin.site.urls), path('', index.html), ]
啟動Django及預覽
上述都完成後,即可啟動django
python manage.py runserver 7000
接下來即可啟動瀏覽器輸入 http://localhost:7000,此時就可以看到結果了
允許外部連線
假設使用 port 7000連線
1. 防火牆將 7000 打開
2. ip 分享器也將 prot 7000指向 server
3. 修改 settings.py, 將 ALLOWED_HOSTS改為如下
ALLOWED_HOSTS = ['*']
4. 啟動指令 : python manage.py runserver 0.0.0.0:7000
Windows開機自啟Django
請啟動 開始/Windows 系統管理工具/工作排程器/建立基本工作
a. 名稱 : django
b. 選擇 “在電腦啟動時執行”
c. 啟動程式
d. 程式或指令碼 : C:\Users\使用者名稱\AppData\Local\Programs\Python\Python37\python.exe
e. 新增引數 : d:\server\pyweb\manage.py runserver 0.0.0.0:7000
f. 在 django按二下,選內容,在一般標籤選取 “不論使用者登入與否均執行”
請注意,此種方法在重新開機後即會自動執行,不需要登入的動作。
一般網路上常見的方法,是由 shell:startup 放置 bat 檔。此法必需登入後才會執行,並不適合我們的需求。
Linux開機自啟Django
請注意,在 /etc/profile新增設定其實是沒用的,因為這些都是要登入後才會啟動。
正確的作法是在 /etc/init.d/之下新增django檔案,檔案內容如下
#!/bin/sh /data/server/django/venv/bin/python3 /data/server/pyweb/manage.py runserver 0.0.0.0:7001
然後更改django權限
sudo chmod 755 django
套後在 rc3.d目錄下新增軟連結
cd /etc/rc3.d ln -s ../init.d/django S99django
最後重新開機,即可自動啟動。