Heim >Backend-Entwicklung >Python-Tutorial >Was ist das Prinzip der Python-WSGI-Anwendung?

Was ist das Prinzip der Python-WSGI-Anwendung?

王林
王林nach vorne
2023-05-19 13:25:131240Durchsuche

Die python-Umgebung, auf der dieser Artikel basiert, ist: python环境为:

python WSGI Application原理是什么

什么是WSGI

WSGI也称之为web服务器通用网关接口,全称是web server gateway interface。它定义了在pythonweb服务器与web应用程序之间应该如何通信并且处理http请求和响应的一个标准,注意,它只是一个协议,或者说是规范、标准,你也可以不按这个标准来,就像我们上一篇文章所写的web服务器那样。

WSGI 也分为应用程序 和 服务器网关, 其中我们熟知的Flask就是属于应用程序,uWSGIwsgiref属于服务器网关。

个人感觉,WSGI避免了造轮子,事情让更擅长的人去做,写服务器的,那就写符合WSGI规范的服务器就好,如果是写应用端的,就写符合WSGI规范应用就好。不用在重复的写轮子。

除此之外,WSGI还能与传统web服务器对接,例如: nginxapache等进行交互。

python WSGI Application原理是什么

WSGI对应用程序规定了什么

WSGI中规定了其应用程序必须是一个可被调用的对象,通常来说,该对象是一个函数或者是一个类。 该对象必须接收2个参数,分别是environ字典 和 start_response函数,并且在对象结束前,应该调用start_response函数。而函数应该传参statusheaders,其中status应该定义响应状态码以及短语,headers应该定义响应头。

如果用代码来阐述的话,应该是这样来写的:

def application(environ, start_response):
    status = '200 OK'
    headers = [('Content-type', 'text/plain')]
    start_response(status, headers)
    return [b'Hello, world!']

其中,application是一个可迭代的对象,接受了2个参数,一个是environ,其类型是字典,还是一个是start_response,其类型是函数,在application结束前,应该调用start_response函数,并且传入statusheaders值。

修改代码写出符合WSGI标准的web业务层

我们昨天写的代码,将返回一个Hello, Destined Person.,我们来看下,如果我们使用WSGI标准来写业务层,我们应该如何定义,并且如何调用WSGI服务器。

python WSGI Application原理是什么

上述,我们引入了一个符合WSGI的服务器: wsgiref.simple_server,我们仅需按照WSGI的标准来编写业务层,也就是上述的application即可。我们在定义状态码的时候,估计将其设置为299 OK,在设置请求头的时候,设置了一个Serverpdudo_web_sites

我们使用curl请求一下服务器。

python WSGI Application原理是什么

发现,哦,只要按照WSGI

Was ist das Prinzip der Python-WSGI-Anwendung#🎜🎜#

Was ist WSGI

#🎜🎜#WSGI ist auch Der vollständige Name der universellen Gateway-Schnittstelle des Web-Servers lautet Web-Server-Gateway-Schnittstelle. Es definiert, wie der Web-Server und die Web-Anwendung in Python kommunizieren und http-Anfragen verarbeiten sollen, und einen Standard für Beachten Sie, dass es sich nur um ein Protokoll oder eine Spezifikation oder einen Standard handelt. Sie müssen diesem Standard nicht folgen, genau wie beim web-Server, den wir im vorherigen Artikel geschrieben haben. #🎜🎜##🎜🎜#WSGI ist auch in Anwendungen und Server-Gateways unterteilt. Darunter gehört der bekannte Flask zu Anwendungen und uWSGI , <code>wsgiref gehört zum Server-Gateway. #🎜🎜##🎜🎜#Persönlich vermeidet WSGI, das Rad neu zu erfinden und ermöglicht es Menschen, die besser darin sind, es zu tun. Wenn Sie einen Server schreiben, schreiben Sie ihn in Übereinstimmung mit dem WSGI -Spezifikation. Wenn Sie eine Anwendung schreiben, schreiben Sie einfach eine Anwendung, die der WSGI-Spezifikation entspricht. Das Rad muss nicht wiederholt geschrieben werden. #🎜🎜##🎜🎜# Darüber hinaus kann WSGI auch mit herkömmlichen Web-Servern verbunden werden, wie zum Beispiel: nginx, apache und so weiter, um zu interagieren. #🎜🎜##🎜🎜#Was ist das Prinzip der Python-WSGI-Anwendung# 🎜🎜#

Was WSGI für Anwendungen spezifiziert

#🎜🎜#WSGI legt fest, dass seine Anwendung ein Programm sein muss, das sein kann Das Objekt des Aufrufs Normalerweise ist das Objekt eine Funktion oder eine Klasse. Dieses Objekt muss zwei Parameter erhalten, nämlich das Wörterbuch environ und die Funktion start_response. Die Funktion start_response sollte aufgerufen werden, bevor das Objekt endet. Die Funktion sollte die Parameter status und headers übergeben, wobei status den Antwortstatuscode und -ausdruck sowie headers definieren sollte sollte den Antwortheader definieren. #🎜🎜##🎜🎜#Wenn es im Code erklärt wird, sollte es so geschrieben werden: #🎜🎜#rrreee#🎜🎜# Unter diesen ist application ein iterierbares Objekt, das 2 Parameter akzeptiert , einer ist environ, sein Typ ist ein Wörterbuch, und der andere ist start_response, sein Typ ist eine Funktion, vor dem Ende von application, Es sollte die Funktion start_response aufrufen und die Werte status und headers übergeben. #🎜🎜#

Ändern Sie den Code, um eine Web-Business-Schicht zu schreiben, die den WSGI-Standards entspricht

#🎜🎜#Der Code, den wir gestern geschrieben haben, gibt ein Hallo, bestimmte Person. zurück, Lass es uns tun. Mal sehen, wenn wir den WSGI-Standard zum Schreiben der Business-Schicht verwenden, wie sollten wir den WSGI-Server definieren und aufrufen. #🎜🎜##🎜🎜#Was ist das Prinzip der Python-WSGI-Anwendung# 🎜🎜##🎜🎜#Wie oben erwähnt, haben wir einen Server eingeführt, der WSGI entspricht: wsgiref.simple_server, wir müssen nur dem Standard von WSGI
Zum Schreiben der Geschäftsschicht, bei der es sich um die obige Anwendung handelt. Als wir den Statuscode definiert haben, haben wir ihn wahrscheinlich auf 299 OK gesetzt. Beim Festlegen des Anforderungsheaders haben wir einen Server auf pdudo_web_sites gesetzt. #🎜🎜##🎜🎜#Wir verwenden curl, um den Server anzufordern. #🎜🎜##🎜🎜#Was ist das Prinzip der Python-WSGI-Anwendung# 🎜🎜##🎜🎜#Ich habe festgestellt, dass man problemlos einen einfachen Server schreiben kann, solange es gemäß der WSGI-Spezifikation geschrieben ist. #🎜🎜#

Das obige ist der detaillierte Inhalt vonWas ist das Prinzip der Python-WSGI-Anwendung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen