Web開發
1.什麼是WSGI?
-
WSGI,全稱
Web Server Gateway Interface
,或者Python Web Server Gateway Interface
,是作為Python 語言定義的 Web 伺服器和 Web 應 用程式或應用框架之間的一種低階別的介面,用來提升可移植Web應用開發的共同點; -
WSGI是基於現存的CGI(通用閘道器介面)標準而設計的;
-
WSGI可以認為是一種 web server 如何與 web application 通訊的規範,或者是一種協議;
2.伺服器與應用程式直接的關係
-
WSGI區分為兩個部分: 一為“伺服器”或“閘道器” ,另一為 “應用程式”或“應用框架” ;
-
在處理一個WSGI請求時,伺服器會為應用程式提供環境資訊及一個回撥函式(Callback Function);
-
當應用程式完成處理請求後,透過前述的回撥函式,將結果回傳給伺服器;
3.WSGI中介軟體
- 所謂的 WSGI 中介軟體同時實現了API的兩方,因此可以在WSGI伺服器和WSGI應用之間起調解作用:從Web伺服器的角度來說,中介軟體扮演應用程式 ,而從應用程式的角度來說,中介軟體扮演伺服器;
“中介軟體”元件的功能有:
-
重寫環境變數後,根據目標URL,將請求訊息路由到不同的應用物件;
-
允許在一個程式中同時執行多個應用程式或應用框架;
-
負載均衡和遠端處理,通過在網路上轉發請求和響應訊息;
-
進行內容後處理,例如應用XSLT樣式表;
4.支援WSGI規範的Web應用框架
BlueBream
bobo
Bottle
CherryPy
Django
Flask
Google App Engine's webapp2
Gunicorn
prestans
Pylons
Pyramid
restlite
Tornado
Trac
TurboGears
Uliweb
web.py
web2py
weblayer
Werkzeug
5.什麼是uwsgi
- uwsgi與WSGI一樣是一種通訊協議或規範,是uWSGI伺服器的獨佔協議,用於定義傳輸資訊的型別,每一個uwsgi packet前4byte為傳輸資訊型別的描述,與WSGI協議是兩種東西,據說該協議是fcgi協議的10倍快;
6.什麼是uWSGI伺服器
-
uWSGI伺服器是一個web伺服器,實現了基於uwsgi協議的server部分,類似於Java的Tomcat,實現了WSGI協議、uwsgi協議、http協議等, 能夠將 http請求進行處理,在內部處理的邏輯從表面上看類似將HTTP請求轉化為WSGI協議的請求,其為部署分散式叢集的網路應用提供了一套完整的解決方案;
-
uWSGI的主要特點是:強悍的響應效能,低記憶體佔用,多app管理,詳盡的日誌功能以及高度可定製;
-
只需要在uWSGI的配置檔案中指定application的地址,uWSGI就能直接和應用框架中的WSGI application通訊,這就是常用的
uWSGI + Django
開 發模式,如果需要Nginx做反向代理等功能,可以將整個web伺服器擴充套件為Nginx + uWSGI + Django
開發模式;
7.web開發入門
- wsgiref 模組實現的 WSGI Server + 自實現的 WSGI Application
from wsgiref.simple_server import make_server
def wsgi_application(environ, start_response):
status = '200 OK'
headers = [('Content-Type', 'text/html;charset=utf-8')]
start_response(status, headers)
html_template = '<h1> Hello World <h1>'.encode()
return [html_template, ]
if __name__ == '__main__':
HOST = '127.0.0.1'
PORT = 9000
server = make_server(HOST, PORT, wsgi_application)
server.serve_forever()
-
wsgiref模組提供了一個WSGI Server伺服器實現的參照樣本,在生產開發Web伺服器不能使用這個模組,僅僅是用來學習的伺服器模組,重點是學習 WSGI Server實現的原理Django的WSGI Server伺服器也不能作為生產Web伺服器提供服務,因為Django的WSGI Server也是一個實驗型別的WSGI Server;
-
Django的WSGI Server伺服器也不能作為生產Web伺服器提供服務,因為Django的WSGI Server也是一個實驗型別的
WSGI Server
; -
在生產中通常使用高效能的WSGI Server,例如:uWSGI伺服器,Gunicorn伺服器(
Jumpserver
使用這個這個WSGI Server
伺服器, 後端的WSGI Application
是Django的Application);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69908432/viewspace-2642862/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SpringBoot Web開發Spring BootWeb
- Python Web開發PythonWeb
- Solon Web 開發Web
- 《大話WEB開發》Web
- Python的web開發PythonWeb
- 開發Web應用Web
- Web開發學習Web
- Dart web開發(1)DartWeb
- web 開發(6)- VueWebVue
- Flutter Web 開發部署FlutterWeb
- Web前端開發概述Web前端
- 學python可以做Web開發嗎?python適合Web開發嗎?PythonWeb
- Spring Boot 的 Web 開發Spring BootWeb
- Python中WEB開發(一)PythonWeb
- SpringBoot-05-web開發Spring BootWeb
- Web開發輔助工具Web
- Web開發框架推導Web框架
- Web 開發進階指南Web
- Web 開發的安全之旅Web
- web前端開發規範Web前端
- SpringBoot-05 Web開發Spring BootWeb
- Web開發基本準則 , Web訪問安全Web
- Web | 淺談用Python進行Web開發WebPython
- Python Web開發:從 wsgi 開始PythonWeb
- 《Flask Web開發 基於Python的Web應用開發實戰》簡評FlaskWebPython
- 什麼是Web開發?如何成為一個Python Web開發人員?WebPython
- 讓 Android 開發像 web 開發一樣爽AndroidWeb
- Web 開發手冊——PHP 開發環境搭建WebPHP開發環境
- node開發web程式---04構建node web程式Web
- Web開發初探(系統理解Web知識點)Web
- python開發本地WEB專案PythonWeb
- Go Web開發入坑指南GoWeb
- Web前端開發Chrome外掛Web前端Chrome
- 移動web開發總結Web
- Web前端開發框架有哪些?Web前端框架
- 快速web開發框架——learun frameworkWeb框架Framework
- 幽默:用人體比喻Web開發Web
- python怎麼做web開發PythonWeb
- web前端開發工具有哪些?8個好用的web前端開發常用工具Web前端