Table des matières
什么是WSGI
WSGI对应用程序规定了什么
修改代码写出符合WSGI标准的web业务层
Qu'est-ce que WSGI
Ce que WSGI spécifie pour les applications
Modifiez le code pour écrire une couche métier Web conforme aux normes WSGI
Maison développement back-end Tutoriel Python Quel est le principe de l'application python WSGI ?

Quel est le principe de l'application python WSGI ?

May 19, 2023 pm 01:25 PM
python application

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!']
Copier après la connexion

其中,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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

HaDIDB: une base de données légère et évolutive horizontalement dans Python HaDIDB: une base de données légère et évolutive horizontalement dans Python Apr 08, 2025 pm 06:12 PM

HaDIDB: Une base de données Python évolutive de haut niveau légère HaDIDB (HaDIDB) est une base de données légère écrite en Python, avec un niveau élevé d'évolutivité. Installez HaDIDB à l'aide de l'installation PIP: PiPinStallHaDIDB User Management Créer un utilisateur: CreateUser () pour créer un nouvel utilisateur. La méthode Authentication () authentifie l'identité de l'utilisateur. FromHadidb.OperationMportUserUser_OBJ = User ("Admin", "Admin") User_OBJ.

Méthode de Navicat pour afficher le mot de passe de la base de données MongoDB Méthode de Navicat pour afficher le mot de passe de la base de données MongoDB Apr 08, 2025 pm 09:39 PM

Il est impossible de visualiser le mot de passe MongoDB directement via NAVICAT car il est stocké sous forme de valeurs de hachage. Comment récupérer les mots de passe perdus: 1. Réinitialiser les mots de passe; 2. Vérifiez les fichiers de configuration (peut contenir des valeurs de hachage); 3. Vérifiez les codes (May Code Hardcode).

Le plan Python de 2 heures: une approche réaliste Le plan Python de 2 heures: une approche réaliste Apr 11, 2025 am 12:04 AM

Vous pouvez apprendre les concepts de programmation de base et les compétences de Python dans les 2 heures. 1. Apprenez les variables et les types de données, 2. Flux de contrôle maître (instructions et boucles conditionnelles), 3. Comprenez la définition et l'utilisation des fonctions, 4. Démarrez rapidement avec la programmation Python via des exemples simples et des extraits de code.

Comment optimiser les performances MySQL pour les applications de haute charge? Comment optimiser les performances MySQL pour les applications de haute charge? Apr 08, 2025 pm 06:03 PM

Guide d'optimisation des performances de la base de données MySQL dans les applications à forte intensité de ressources, la base de données MySQL joue un rôle crucial et est responsable de la gestion des transactions massives. Cependant, à mesure que l'échelle de l'application se développe, les goulots d'étranglement des performances de la base de données deviennent souvent une contrainte. Cet article explorera une série de stratégies efficaces d'optimisation des performances MySQL pour garantir que votre application reste efficace et réactive dans des charges élevées. Nous combinerons des cas réels pour expliquer les technologies clés approfondies telles que l'indexation, l'optimisation des requêtes, la conception de la base de données et la mise en cache. 1. La conception de l'architecture de la base de données et l'architecture optimisée de la base de données sont la pierre angulaire de l'optimisation des performances MySQL. Voici quelques principes de base: sélectionner le bon type de données et sélectionner le plus petit type de données qui répond aux besoins peut non seulement économiser un espace de stockage, mais également améliorer la vitesse de traitement des données.

Python: Explorer ses applications principales Python: Explorer ses applications principales Apr 10, 2025 am 09:41 AM

Python est largement utilisé dans les domaines du développement Web, de la science des données, de l'apprentissage automatique, de l'automatisation et des scripts. 1) Dans le développement Web, les cadres Django et Flask simplifient le processus de développement. 2) Dans les domaines de la science des données et de l'apprentissage automatique, les bibliothèques Numpy, Pandas, Scikit-Learn et Tensorflow fournissent un fort soutien. 3) En termes d'automatisation et de script, Python convient aux tâches telles que les tests automatisés et la gestion du système.

Comment utiliser Aws Glue Crawler avec Amazon Athena Comment utiliser Aws Glue Crawler avec Amazon Athena Apr 09, 2025 pm 03:09 PM

En tant que professionnel des données, vous devez traiter de grandes quantités de données provenant de diverses sources. Cela peut poser des défis à la gestion et à l'analyse des données. Heureusement, deux services AWS peuvent aider: AWS Glue et Amazon Athena.

MySQL peut-il se connecter au serveur SQL MySQL peut-il se connecter au serveur SQL Apr 08, 2025 pm 05:54 PM

Non, MySQL ne peut pas se connecter directement à SQL Server. Mais vous pouvez utiliser les méthodes suivantes pour implémenter l'interaction des données: utilisez Middleware: Exporter les données de MySQL au format intermédiaire, puis importez-les sur SQL Server via Middleware. Utilisation de Database Linker: Business Tools fournit une interface plus conviviale et des fonctionnalités avancées, essentiellement encore implémentées via Middleware.

Comment démarrer le serveur avec redis Comment démarrer le serveur avec redis Apr 10, 2025 pm 08:12 PM

Les étapes pour démarrer un serveur Redis incluent: Installez Redis en fonction du système d'exploitation. Démarrez le service Redis via Redis-Server (Linux / MacOS) ou Redis-Server.exe (Windows). Utilisez la commande redis-Cli Ping (Linux / MacOS) ou redis-Cli.exe Ping (Windows) pour vérifier l'état du service. Utilisez un client redis, tel que redis-cli, python ou node.js pour accéder au serveur.

See all articles