Quel est le principe de l'application python WSGI ?
L'environnement python
sur lequel s'appuie cet article est : python
环境为:
什么是WSGI
WSGI
也称之为web
服务器通用网关接口,全称是web server gateway interface
。它定义了在python
中web
服务器与web
应用程序之间应该如何通信并且处理http
请求和响应的一个标准,注意,它只是一个协议,或者说是规范、标准,你也可以不按这个标准来,就像我们上一篇文章所写的web
服务器那样。
WSGI
也分为应用程序 和 服务器网关, 其中我们熟知的Flask
就是属于应用程序,uWSGI
、wsgiref
属于服务器网关。
个人感觉,WSGI
避免了造轮子,事情让更擅长的人去做,写服务器的,那就写符合WSGI
规范的服务器就好,如果是写应用端的,就写符合WSGI
规范应用就好。不用在重复的写轮子。
除此之外,WSGI
还能与传统web
服务器对接,例如: nginx
、apache
等进行交互。
WSGI对应用程序规定了什么
WSGI
中规定了其应用程序必须是一个可被调用的对象,通常来说,该对象是一个函数或者是一个类。 该对象必须接收2个参数,分别是environ
字典 和 start_response
函数,并且在对象结束前,应该调用start_response
函数。而函数应该传参status
和headers
,其中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
函数,并且传入status
和headers
值。
修改代码写出符合WSGI标准的web业务层
我们昨天写的代码,将返回一个Hello, Destined Person.
,我们来看下,如果我们使用WSGI
标准来写业务层,我们应该如何定义,并且如何调用WSGI
服务器。
上述,我们引入了一个符合WSGI
的服务器: wsgiref.simple_server
,我们仅需按照WSGI
的标准来编写业务层,也就是上述的application
即可。我们在定义状态码的时候,估计将其设置为299 OK
,在设置请求头的时候,设置了一个Server
为pdudo_web_sites
。
我们使用curl
请求一下服务器。
发现,哦,只要按照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. #🎜🎜##🎜🎜#
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 unBonjour, 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
. #🎜🎜##🎜🎜#
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. #🎜🎜##🎜🎜#
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!

Outils d'IA chauds

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

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

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

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.

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).

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.

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 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.

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.

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.

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.
