真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Pythonweb框架和web服務(wù)器之間的關(guān)系

本篇內(nèi)容介紹了“Python web框架和web服務(wù)器之間的關(guān)系”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),路橋網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:路橋等地區(qū)。路橋做網(wǎng)站價(jià)格咨詢:18982081108

我們都知道 Python 作為一門(mén)強(qiáng)大的語(yǔ)言,能夠適應(yīng)快速原型和較大項(xiàng)目的制作,因此被廣泛用于 web 應(yīng)用程序的開(kāi)發(fā)中。

在面試的過(guò)程中,大家或多或少都被問(wèn)到過(guò)這樣一個(gè)問(wèn)題:一個(gè)請(qǐng)求從瀏覽器發(fā)出到數(shù)據(jù)返回都經(jīng)歷過(guò)哪些過(guò)程?

要回答這個(gè)問(wèn)題,首先你需要對(duì) HTTP 協(xié)議、web框架、服務(wù)器等底層知識(shí)有一定的儲(chǔ)備量,同時(shí)需要對(duì) web  框架和服務(wù)器之間的關(guān)聯(lián)有一定的了解,這里有張圖上面詳細(xì)的標(biāo)明它們之間的聯(lián)系。

Python web框架和web服務(wù)器之間的關(guān)系

這么多 wsgi 是不是有點(diǎn)懵逼?看不明白沒(méi)有關(guān)系,下面我會(huì)帶大家順著圖片里面的順序一步一步來(lái)搞懂里面的概念,厘清它們之間的關(guān)系

一、web 框架

在 Python 有很多 web 框架,其中常見(jiàn)的像 Django、Flask、Tornado 、sanic 等,可能有些人對(duì) sanic  不是很熟悉,這里簡(jiǎn)單說(shuō)幾句,它的用法和 Flask 很相似,但是它支持 async/await  異步并發(fā)編程,所以相對(duì)來(lái)說(shuō)性能更高。這里就不對(duì)這些框架作比較了,因?yàn)檫@不是我們今天的重點(diǎn)!

熟悉的朋友都知道 Web 框架包含一系列庫(kù)和一個(gè)主要的處理器 (handler),這樣你就能夠構(gòu)建自己的代碼來(lái)實(shí)現(xiàn) Web 應(yīng)用  (比如說(shuō)一個(gè)交互式的網(wǎng)站)。大多數(shù) web 框架包含模式和工具,能實(shí)現(xiàn)以下功能:

URL 路由

將輸入的 HTTP 請(qǐng)求匹配到特定的路由函數(shù),通過(guò)路由函數(shù)來(lái)調(diào)用對(duì)應(yīng)的 Python 代碼

請(qǐng)求和響應(yīng)對(duì)象

Python 中的大多的 web 框架都幫我們封裝好了來(lái)自用戶發(fā)送的 HTTP 請(qǐng)求 Request,同時(shí)也提供了發(fā)送給用戶瀏覽器的 Response  對(duì)象

模板引擎

能夠?qū)?shí)現(xiàn)應(yīng)用的 Python 代碼邏輯和其要產(chǎn)生輸出的 HTML (或其他的) 分離開(kāi),例如比較知名的 Jinja2  模板引擎。它使用基于文本的模板語(yǔ)言,因此可以用來(lái)生成任何類型的標(biāo)記,而不僅僅是 HTML。它允許定制過(guò)濾器、標(biāo)簽、測(cè)試和全局變量

Web 服務(wù)開(kāi)發(fā)

除了上述之外,單單一個(gè) web 框架并不能支撐我們應(yīng)用上的服務(wù),需要在開(kāi)發(fā)機(jī)上運(yùn)行 HTTP 服務(wù)器,從而快速開(kāi)發(fā);這就需要涉及到 web  框架和服務(wù)器之間的通信等問(wèn)題。

好在 Python 給我們提供了這樣的協(xié)議接口,也就是我們常說(shuō)的 WSGI 協(xié)議!下面來(lái)了解一下什么是 WSGI 。

二、WSGI協(xié)議

Web 服務(wù)網(wǎng)關(guān)接口 (簡(jiǎn)稱為 "WSGI") 是一種在 Web 服務(wù)器和 Python Web 應(yīng)用程序框架之間的標(biāo)準(zhǔn)接口。通過(guò)標(biāo)準(zhǔn)化 Web 服務(wù)器和  Python web 應(yīng)用程序框架之間的行為和通信,WSGI 使得編寫(xiě)可移植的的 Python web 代碼變?yōu)榭赡埽蛊淠軌虿渴鹪谌魏畏?WSGI 的  web 服務(wù)。

有了 WSGI 協(xié)議,我們就不需要為每一個(gè) web 框架去搞一套協(xié)議,因?yàn)榛旧纤械腜ython web 框架都支持這個(gè)協(xié)議。

三、uWSGI服務(wù)器

uWSGI 服務(wù)器也就是圖片中的所指的 WSGI 容器, 獨(dú)立 uWSGI 服務(wù)器相比傳統(tǒng) web 服務(wù)器,使用更少的資源,并提供比較高的性能  。Python 中的 uWSGI 服務(wù)器應(yīng)用最廣的主要包含以下幾個(gè):

Gunicorn

Gunicorn (Green Unicorn,綠色獨(dú)角獸) 是一個(gè)純 Python WSGI 服務(wù)器,用來(lái)支持 Python 應(yīng)用。不像其他  Python web 服務(wù)器,它有周全的用戶界面,十分易于使用和配置。

Gunicorn 具有合理的默認(rèn)配置。然而,其他一些像 uWSGI 這樣的服務(wù)器相較而言過(guò)于可定制化,因此更加難以高效使用。

Gunicorn 是如今新 Python web 應(yīng)用程序的推薦選擇。

Waitress

Waitress 是一個(gè)純 Python WSGI 服務(wù)器,聲稱具備 “非常高效的性能”。它的文檔不是很詳細(xì),但它確實(shí)提供了一些很好的而 Gunicorn  沒(méi)有的功能(例如 HTTP 請(qǐng)求緩沖)。

Waitress 在 Python Web 開(kāi)發(fā)社區(qū)中越來(lái)越受歡迎。

uWSGI

你沒(méi)有看錯(cuò),又是 uWSGI!uWSGI 用來(lái)構(gòu)建全棧式的主機(jī)服務(wù)。除了進(jìn)程管理、進(jìn)程監(jiān)控和其他功能外, uWSGI  也能作為一個(gè)應(yīng)用服務(wù)器,適用于多種編程語(yǔ)言和協(xié)議 - 包括 Python 和 WSIG。uWSGI 既能當(dāng)作獨(dú)立的 web 路由器來(lái)運(yùn)行,也能運(yùn)行在一個(gè)完整  web 服務(wù)器(比如 Nginx 或 Apache )之后。對(duì)于后者,web 服務(wù)器可以基于 uwsgi 協(xié)議 配置 uWSGI 和應(yīng)用的操作。uWSGI 的  web 服務(wù)器支持允許動(dòng)態(tài)配置 Python 、傳遞環(huán)境變量等。

四、uwsgi 協(xié)議

uwsgi 協(xié)議:與 WSGI 一樣是一種通信協(xié)議,它是 web 服務(wù)器 和 uWSGI 服務(wù)器之間的協(xié)議,一個(gè) uWSGI  服務(wù)器的獨(dú)占協(xié)議,它是用于定義傳輸信息的類型(type of information),每一個(gè) uwsgi packet前4byte為傳輸信息類型的描述,與  WSGI協(xié)議 是兩種東西。

五、Web 服務(wù)器端

Web 服務(wù)器包括 Nginx,Apache,IIS 等。而優(yōu)秀的 web 服務(wù)器在接收 http 請(qǐng)求時(shí),還可以做負(fù)載均衡和反向代理等工作。

Nginx

Nginx 是一個(gè) web 服務(wù)器,并且是 HTTP 、SMTP 和其他協(xié)議的反向代理。它由其高性能、相對(duì)簡(jiǎn)潔以及對(duì)眾多應(yīng)用服務(wù)器 (比如 WSGI  服務(wù)器) 兼容而著名。

它也擁有便利的特性, 比如負(fù)載均衡、基本的認(rèn)證、流等。Nginx 被設(shè)計(jì)為承載高負(fù)載的網(wǎng)站,并逐漸變得廣為流行。所以我們一般用  Nginx來(lái)做還可以做負(fù)載均衡和反向代理!

當(dāng)然除了厘清以上的概念及它們之間的關(guān)系之外,您還需要知道 HTTP 協(xié)議的知識(shí),這部分也是在面試中經(jīng)常被問(wèn)到的,這里就不做贅述了。

“Python web框架和web服務(wù)器之間的關(guān)系”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!


本文名稱:Pythonweb框架和web服務(wù)器之間的關(guān)系
本文鏈接:http://weahome.cn/article/ipdceo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部