1. 程式人生 > 實用技巧 >部署新的Django專案———〇一 .前期準備

部署新的Django專案———〇一 .前期準備

在前面我們已經瞭解瞭如何利用Django框架做一個小專案,但是一直是通過命令列來實現專案的執行的,顯然這樣不符合生產環境使用要求。那麼下面這一階段我們就來簡單的瞭解一下如何部署Django專案

整體思路

網上的方法用的最多的就是用uwsgi和nginx來實現專案的部署,這裡也用這個方式實現。

環境準備

為了模擬真實的使用環境,我打算把專案部署在騰訊的雲伺服器上。

系統和python的版本

python為3.6.8,是現裝的,由於這個版本的Python用的比較多,就直接指定用這個版本的安裝了

[root@VM-0-13-centos myfiles]# yum install python36

系統發行版為centos7.5

安裝django

django和前面使用的版本一樣,在安裝完python3以後可以直接通過pip3安裝

[root@VM-0-13-centos myfiles]# pip3 install django==2.0.13

建立新的專案

安裝好django以後可以建立一個新的專案來備後面測試使用,注意專案的路徑,我是在家目錄下建立了一個code的資料夾,用來放程式碼

直接在目錄下建立一個新的專案

[root@VM-0-13-centos code]# django-admin startproject blog

要通過ip訪問這個專案,要先對配置檔案settings.py檔案進行修改,先用*來允許所有的IP地址訪問(修改ALLOW_HOSTS列表)

ALLOWED_HOSTS = ['*']

然後執行程式,指定埠8000

[root@VM-0-13-centos blog]# python3 manage.py runserver 0.0.0.0:8000

這裡要注意,執行前應該檢檢視看8000埠是否已經開啟,如果沒問題的話,在本機可以訪問一下ip+埠號

紅色字表示我們還未對資料庫進行遷移,但並不影響程式的執行,

這樣就準備好了Django的專案

uwsgi的準備

uwsgi的用途我們後面再說,這裡先把他準備好

安裝

uwsgi可以通過pip直接安裝

[root@VM-0-13-centos blog]# pip3 install uwsgi

但是很多時候下載完成後在安裝時會報錯

提示資訊是沒有<Python.h>檔案,這是因為我們我們沒有安裝python開發包,通過yum安裝一下

[root@VM-0-13-centos blog]# yum install python36-devel

這裡一定要注意,開發包的版本要和python的版本一致

重新安裝uwsgi就好了

uwsgi的測試

下面新建一個Python檔案來測試uwsgi

##file name:uwsgi_test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"]

就是一個簡單的函式,用來發送一個字串給前端頁面

然後執行下面的程式碼

[root@VM-0-13-centos code]# uwsgi --http :9090 --wsgi-file uwsgi_test.py

同樣在執行前應該檢查埠的開啟狀態,這裡我們指定的是9090埠,然後在本地訪問這個地址

前端顯示了我們通過函式傳送到字串Hello World,說明uwsgi的狀態也是OK的。

nginx的準備

nginx的準備稍微麻煩一些,我一步步來

安裝nginx

nginx的安裝有直接通過yum安裝,也可以下載原始碼直接自己安裝,我在Ubuntu上也按裝過,覺得方法都差不多,yum安裝時會解決所有的依賴問題,但是裝的路徑比較分散,這裡建議使用原始檔安裝

下載檔案,這裡直接下載1.16.1版本並解壓

[root@VM-0-13-centos myfiles]# wget http://nginx.org/download/nginx-1.16.1.tar.gz
[root@VM-0-13-centos myfiles]# tar -xzvf nginx-1.16.1.tar.gz 

我們把nginx安裝在/opt/nginx路徑下,安裝的時候指定了兩個附加的功能,後期再說

[root@VM-0-13-centos nginx-1.16.1]# ./configure --prefix=/opt/nginx --with-http_ssl_module --with-http_stub_status_module

安裝過程中首先報錯,提示需要PCRE libiary

yum安裝,注意安裝的還是開發包

[root@VM-0-13-centos nginx-1.16.1]# yum install pcre-devel

繼續執行配置檔案,又出現錯誤

沒有OpenSSL,繼續yum安裝

[root@VM-0-13-centos nginx-1.16.1]# yum install openssl-devel

配置完成以後,可以通過makefile進行安裝

[root@VM-0-13-centos nginx-1.16.1]# make && make install

跳轉到我們指定的安裝路徑下,執行nginx,也可以用絕對路徑執行

[root@VM-0-13-centos /]# /opt/nginx/sbin/nginx 

可以看一下nginx預設的配置檔案,監聽的埠是80,用瀏覽器訪問一下,就能開啟nginx的預設引導頁面

說明nginx也已經正常安裝。