CGI與WSGI程式設計簡析

2021-07-06 06:08:01 字數 872 閱讀 5877

之前寫python的時候一直都是直接套用框架,這周上課的時候被作業逼著了解了下一些比較底層的東西,比如cgi程式設計和wsgi程式設計

cgi common gateway inte***ce, 是目前最通用的web程式設計介面,幾乎相容任何web語言(因為這些語言本身就是遵循cgi標準的)

wsgi 

web server gateway inte***ce 是對cgi的一種封裝,最早由python提出,目前也可相容多種語言。

下面說說cgi和wsgi在用python程式設計時的區別

從操作上來說,cgi執行python是這樣的,在指定路徑下 執行命令 

-m的意思就是把某個模組以指令碼形式執行,也就是說直接執行cgihttpserver這個模組

然後在瀏覽器上輸入對應路徑的py檔案

這樣會帶來乙個問題,我在前端需要執行某個指令碼的時候,是通過url直接訪問該指令碼,並通過cgihttpserver來執行的,這樣其實有點***,比較符合邏輯的做法是將後台的指令碼是隱藏的,不應該直接暴露在前端

而且,在早期,不止有cgi一種介面,還有諸如fastcgi等,各種框架基本都只相容其中一種介面,這樣就給開發者帶來困擾。然後,為了統一介面,wsgi就出現了。(我也不知道為什麼wsgi的出現不是繼續**介面而是統一介面,反正歷史就是這樣的)

wsgi的呼叫更接近現在python的各種框架的方法

通過uwsgi工具載入乙個py檔案,然後在瀏覽器訪問localhost,uwsgi會將某個url重定向到py指令碼上

這樣的方式就很好的隱藏了後台

並且,wsgi還封裝了cgi的一些介面

and so on

總之就是目前的python框架多是建立在wsgi介面上的

Linux C程式設計學習 main 函式簡析

提到c語言的函式,有太多內容要講,今天我們要看的是main 函式。main 函式時程式的入口點,任何程式都要有main 函式,一般大家都怎麼寫main 函式啊?main void main void main void int main int main void int main int argc...

簡析 JSON 中的 與

在 json 裡 是 array 也就是陣列 是ojbect 也就是物件 array 的key 是 int.的key 是 string 例如 var dot1 a 就是乙個陣列 var dot2 就是乙個物件 陣列和物件轉換非常簡單,dot1把 替換為 就是物件,dot2把替換為 就是素組。這在jq...

多維陣列與指標簡析

在今天學習c 多維陣列與指標時遇到一些小的問題,再仔細思考之後終於解決疑惑,望我的理解對初學者有一定的幫助。假設有乙個二維的陣列a,他有3行和4列,它的定義為int a 3 4 c 語言允許把乙個二維陣列分解為多個一維陣列來處理。因此陣列a可分解為三個一維陣列,即a 0 a 1 a 2 每乙個一維陣...