1. 程式人生 > 程式設計 >python框架django專案部署相關知識詳解

python框架django專案部署相關知識詳解

這篇文章主要介紹了python框架django專案部署相關知識詳解,文中通過示例程式碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一:專案部署的框架

  nginx和uWSGI在生產伺服器上進行的部署

二:什麼是nginx?

  nginx是一個web伺服器。

  什麼是web伺服器?

  web伺服器則主要是讓客戶可以通過瀏覽器進行訪問,處理HTML檔案,css檔案,js檔案,圖片等資源。web伺服器一般要處理靜態檔案。對接伺服器。

  什麼是靜態檔案?

  css,js,html,圖片等不需要後臺進行邏輯處理的檔案。

  特點:一般將靜態檔案放在web伺服器裡面。如nginx伺服器中,做到動態靜態分離的處理。

  什麼是動態檔案?

  除了靜態檔案之外,一般都是動態檔案。

  特點:動態檔案一般web伺服器不直接進行處理,例如ngnix會將動態資源轉發給應用伺服器(反向代理),讓應用伺服器進行處理,並將處理結果,返給nginx,nginx在將結果返回瀏覽器。

  什麼是應用伺服器?

  應用伺服器直接面對的是我們寫的程式。

  特點:對接程式函式,處理業務邏輯。

  uWSGI是一個應用伺服器。

三:uWSGI和nginx之間通訊的簡單過程。

uWSGI接到請求後,將請求包進行處理,處理成wsgi(一種通訊協議)可以接受的格式,併發送給wsgi,wsgi根據請求,呼叫應用程式中的某個檔案中的某個函式,進行處理,處理完成後,將返回值,再次交給wsgi,wsgi將返回值進行打包,打包成uWSGI接受的格式,然後uWSGI將結果轉發給nginx,ngnix最終將返回值給瀏覽器。

四:為什麼分成靜態伺服器和應用伺服器進行部署?

  實現了動和靜分離。提高訪問靜態檔案的速度。降低對後臺的訪問。提高了網站的吞吐量。

  實現動靜分離的方式:

  1. 頁面靜態化,頁面靜態化後的頁面是放在哪裡,硬碟還是快取中。

  2. 靜態檔案例如:圖片還有html,css檔案時放在web伺服器上,還是web伺服器的快取裡面?

五:setting.py中的debug=True

我們希望本機訪問的時候,開啟除錯模式,錯誤了給錯誤資訊的詳細頁面,其他機器訪問的時候,關閉除錯模式,錯誤了給他們404頁面。  

socket.gethostname() 返回的是主機名

# setting.py中改變DEBUG=True
import socket 
if socket.gethostname() == "xxx":
  DEBUG =True
else:
  DEBUG = False

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。