Maison  >  Article  >  développement back-end  >  Quel est le principe de l’application python WSGI ?

Quel est le principe de l’application python WSGI ?

王林
王林avant
2023-05-19 13:25:131177parcourir

L'environnement python sur lequel s'appuie cet article est : 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

Quel est le principe de l'application python WSGI#🎜🎜#

Qu'est-ce que WSGI

#🎜🎜#WSGI est également appelé Le nom complet de l'interface de passerelle universelle du serveur web est interface de passerelle du serveur Web. Il définit comment le serveur web et l'application web dans python doivent communiquer et gérer les requêtes http et une norme pour réponse. Notez qu'il s'agit simplement d'un protocole, ou d'une spécification ou d'un standard. Vous n'êtes pas obligé de suivre ce standard, tout comme le serveur web que nous avons écrit dans l'article précédent. #🎜🎜##🎜🎜#WSGI est également divisé en applications et passerelles de serveur. Parmi elles, le célèbre Flask appartient aux applications, et uWSGI<.> , <code>wsgiref appartient à la passerelle du serveur. #🎜🎜##🎜🎜#Personnellement, WSGI évite de réinventer la roue et laisse les gens qui savent mieux faire les choses le faire. Si vous écrivez un serveur, écrivez-le en conformité avec le WSGI. . Utilisez simplement un serveur. Si vous écrivez une application, écrivez simplement une application conforme à la spécification WSGI. Pas besoin d'écrire la roue à plusieurs reprises. #🎜🎜##🎜🎜# De plus, WSGI peut également être connecté aux serveurs web traditionnels, tels que : nginx, apache et ainsi de suite pour interagir. #🎜🎜##🎜🎜#Quel est le principe de l'application python WSGI# 🎜🎜#

Ce que WSGI spécifie pour les applications

#🎜🎜#WSGI stipule que son application doit être une application qui peut être L'objet de l'appel, généralement, l'objet est une fonction ou une classe. Cet objet doit recevoir 2 paramètres, qui sont le dictionnaire environ et la fonction start_response, et la fonction start_response doit être appelée avant la fin de l'objet. La fonction doit transmettre les paramètres status et headers, où status doit définir le code et la phrase d'état de la réponse, et headers devrait définir l’en-tête de réponse. #🎜🎜##🎜🎜#Si c'est expliqué dans le code, il faut l'écrire comme ceci : #🎜🎜#rrreee#🎜🎜# Parmi eux, application est un objet itérable, accepté 2 paramètres , l'un est environ, son type est un dictionnaire, et l'autre est start_response, son type est une fonction, avant la fin de application, il doit appeler la fonction start_response et transmettre les valeurs status et headers. #🎜🎜#

Modifiez le code pour écrire une couche métier Web conforme aux normes WSGI

#🎜🎜#Le code que nous avons écrit hier renverra un Bonjour, personne destinée., faisons-le Voyons, si nous utilisons le standard WSGI pour écrire la couche métier, comment devons-nous définir et comment appeler le serveur WSGI. #🎜🎜##🎜🎜#Quel est le principe de l'application python WSGI# 🎜🎜##🎜🎜#Comme mentionné ci-dessus, nous avons introduit un serveur conforme à WSGI : wsgiref.simple_server, il nous suffit de suivre le standard de WSGI Pour écrire la couche métier, qui est l'application ci-dessus. Lorsque nous avons défini le code d'état, nous l'avons probablement défini sur 299 OK. Lors de la définition de l'en-tête de la requête, nous avons défini un Serveur sur pdudo_web_sites . #🎜🎜##🎜🎜#Nous utilisons curl pour demander le serveur. #🎜🎜##🎜🎜#Quel est le principe de l'application python WSGI# 🎜🎜##🎜🎜#J'ai trouvé que, oh, tant qu'il est écrit selon la spécification WSGI, vous pouvez facilement écrire un serveur simple. #🎜🎜#

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer