国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Inhaltsverzeichnis
什么是WSGI
WSGI對應(yīng)用程序規(guī)定了什么
修改代碼寫出符合WSGI標(biāo)準(zhǔn)的web業(yè)務(wù)層
Was ist WSGI
Was WSGI für Anwendungen spezifiziert
?ndern Sie den Code, um eine Web-Business-Schicht zu schreiben, die den WSGI-Standards entspricht
Heim Backend-Entwicklung Python-Tutorial Was ist das Prinzip der Python-WSGI-Anwendung?

Was ist das Prinzip der Python-WSGI-Anwendung?

May 19, 2023 pm 01:25 PM
python application

Die python-Umgebung, auf der dieser Artikel basiert, ist: python環(huán)境為:

python WSGI?Application原理是什么

什么是WSGI

WSGI也稱之為web服務(wù)器通用網(wǎng)關(guān)接口,全稱是web server gateway interface。它定義了在pythonweb服務(wù)器與web應(yīng)用程序之間應(yīng)該如何通信并且處理http請求和響應(yīng)的一個(gè)標(biāo)準(zhǔn),注意,它只是一個(gè)協(xié)議,或者說是規(guī)范、標(biāo)準(zhǔn),你也可以不按這個(gè)標(biāo)準(zhǔn)來,就像我們上一篇文章所寫的web服務(wù)器那樣。

WSGI 也分為應(yīng)用程序 和 服務(wù)器網(wǎng)關(guān), 其中我們熟知的Flask就是屬于應(yīng)用程序,uWSGI、wsgiref屬于服務(wù)器網(wǎng)關(guān)。

個(gè)人感覺,WSGI避免了造輪子,事情讓更擅長的人去做,寫服務(wù)器的,那就寫符合WSGI規(guī)范的服務(wù)器就好,如果是寫應(yīng)用端的,就寫符合WSGI規(guī)范應(yīng)用就好。不用在重復(fù)的寫輪子。

除此之外,WSGI還能與傳統(tǒng)web服務(wù)器對接,例如: nginxapache等進(jìn)行交互。

python WSGI?Application原理是什么

WSGI對應(yīng)用程序規(guī)定了什么

WSGI中規(guī)定了其應(yīng)用程序必須是一個(gè)可被調(diào)用的對象,通常來說,該對象是一個(gè)函數(shù)或者是一個(gè)類。 該對象必須接收2個(gè)參數(shù),分別是environ字典 和 start_response函數(shù),并且在對象結(jié)束前,應(yīng)該調(diào)用start_response函數(shù)。而函數(shù)應(yīng)該傳參statusheaders,其中status應(yīng)該定義響應(yīng)狀態(tài)碼以及短語,headers應(yīng)該定義響應(yīng)頭。

如果用代碼來闡述的話,應(yīng)該是這樣來寫的:

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

其中,application是一個(gè)可迭代的對象,接受了2個(gè)參數(shù),一個(gè)是environ,其類型是字典,還是一個(gè)是start_response,其類型是函數(shù),在application結(jié)束前,應(yīng)該調(diào)用start_response函數(shù),并且傳入statusheaders值。

修改代碼寫出符合WSGI標(biāo)準(zhǔn)的web業(yè)務(wù)層

我們昨天寫的代碼,將返回一個(gè)Hello, Destined Person.,我們來看下,如果我們使用WSGI標(biāo)準(zhǔn)來寫業(yè)務(wù)層,我們應(yīng)該如何定義,并且如何調(diào)用WSGI服務(wù)器。

python WSGI?Application原理是什么

上述,我們引入了一個(gè)符合WSGI的服務(wù)器: wsgiref.simple_server,我們僅需按照WSGI的標(biāo)準(zhǔn)來編寫業(yè)務(wù)層,也就是上述的application即可。我們在定義狀態(tài)碼的時(shí)候,估計(jì)將其設(shè)置為299 OK,在設(shè)置請求頭的時(shí)候,設(shè)置了一個(gè)Serverpdudo_web_sites。

我們使用curl請求一下服務(wù)器。

python WSGI?Application原理是什么

發(fā)現(xiàn),哦,只要按照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!

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276
Python Seeborn JointPlot Beispiel Python Seeborn JointPlot Beispiel Jul 26, 2025 am 08:11 AM

Verwenden Sie die Jointplot von Seeborn, um die Beziehung und Verteilung zwischen zwei Variablen schnell zu visualisieren. 2. Das grundlegende Streudiagramm wird durch sns.jointplot (data = tips, x = "total_bill", y = "tip", sort = "scatter") implementiert, das Zentrum ist ein Streudiagramm und das Histogramm wird auf der oberen und unteren und rechten Seite angezeigt. 3. Fügen Sie Regressionslinien und Dichteinformationen zu einer Art "Reg" hinzu und kombinieren Sie Marginal_KWS, um den Edge -Plot -Stil festzulegen. 4. Wenn das Datenvolumen gro? ist, wird empfohlen, "Hex" zu verwenden,

Python -Liste zum String Conversion Beispiel Python -Liste zum String Conversion Beispiel Jul 26, 2025 am 08:00 AM

String -Listen k?nnen mit der join () -Methode wie '' .Join (Words) zusammengeführt werden, um "helloWorldfrompython" zu erhalten; 2. Die Zahlenlisten müssen vor dem Beitritt in Zeichenfolgen mit Karte (STR, Zahlen) oder [STR (x) ForxInnumbers] konvertiert werden. 3. Jede Typliste kann direkt in Zeichenfolgen mit Klammern und Zitaten umgewandelt werden, die zum Debuggen geeignet sind. 4. Benutzerdefinierte Formate k?nnen durch Generatorausdrücke in Kombination mit Join () implementiert werden, wie z.

Python verbinden sich mit SQL Server PyoDBC -Beispiel Python verbinden sich mit SQL Server PyoDBC -Beispiel Jul 30, 2025 am 02:53 AM

Installieren Sie PYODBC: Verwenden Sie den Befehl pipinstallpyoDBC, um die Bibliothek zu installieren. 2. SQLServer verbinden: Verwenden Sie die Verbindungszeichenfolge, die Treiber, Server, Datenbank, UID/PWD oder Trusted_Connection über die Methode Pyodbc.Connect () und die SQL -Authentifizierung bzw. der Windows -Authentifizierung unterstützen; 3. überprüfen Sie den installierten Treiber: Führen Sie Pyodbc.Drivers () aus und filtern Sie den Treibernamen mit 'SQLServer', um sicherzustellen, dass der richtige Treiberame wie 'ODBCDRIVER17 für SQLServer' verwendet wird. 4. Schlüsselparameter der Verbindungszeichenfolge

Python Pandas Schmelze Beispiel Python Pandas Schmelze Beispiel Jul 27, 2025 am 02:48 AM

Pandas.Melt () wird verwendet, um weite Formatdaten in ein langes Format umzuwandeln. Die Antwort besteht darin, neue Spaltennamen zu definieren, indem id_vars angegeben wird, die Identifikationsspalte beibehalten. 4.Value_name = 'Score' legt den neuen Spaltennamen des ursprünglichen Wertes fest und generiert schlie?lich drei Spalten, einschlie?lich Name, Betreff und Punktzahl.

Python Django bildet Beispiel Python Django bildet Beispiel Jul 27, 2025 am 02:50 AM

Definieren Sie zun?chst ein ContactForm -Formular mit Namen, Mailbox und Nachrichtenfeldern. 2. In der Ansicht wird die Einreichung von Formular durch die Beurteilung der Postanfrage bearbeitet, und nach der überprüfung wird Cleaned_data erhalten und die Antwort wird zurückgegeben, sonst wird das leere Formular gerendert. 3. In der Vorlage verwenden Sie {{{form.as_p}}, um das Feld zu rendern und {%csrf_token%} hinzuzufügen, um CSRF -Angriffe zu verhindern; 4. Konfigurieren Sie die URL -Routing auf Punkt / Kontakt / an die Ansicht contact_view; Verwenden Sie Modelform, um das Modell direkt zu verknüpfen, um die Datenspeicherung zu erreichen. DjangoForms implementiert eine integrierte Verarbeitung von Datenüberprüfung, HTML -Rendering und Fehleraufforderungen, die für die schnelle Entwicklung sicherer Formfunktionen geeignet sind.

Optimierung von Python für Speichervorg?nge Optimierung von Python für Speichervorg?nge Jul 28, 2025 am 03:22 AM

PythoncanbeoptimizedFormemory-BoundoperationsByreducingoverheadThroughGeneratoren, effiziente Datastrukturen und ManagingObjectLifetimes.First, UseGeneratorsinSteadofListStoprocesslargedatasetasetasematatime, Vermeidung von loloadingeNthertomemory.Secondatasetasetematatime, Choos

Was ist statistische Arbitrage in Kryptow?hrungen? Wie funktioniert statistische Arbitrage? Was ist statistische Arbitrage in Kryptow?hrungen? Wie funktioniert statistische Arbitrage? Jul 30, 2025 pm 09:12 PM

Die Einführung in statistische Arbitrage Statistical Arbitrage ist eine Handelsmethode, die auf der Grundlage mathematischer Modelle Preisfehlanpassungen auf dem Finanzmarkt erfasst. Die Kernphilosophie beruht auf der mittleren Regression, dh, dass die Verm?genspreise kurzfristig von langfristigen Trends abweichen, aber schlie?lich zu ihrem historischen Durchschnitt zurückkehren. H?ndler verwenden statistische Methoden, um die Korrelation zwischen Verm?genswerten zu analysieren und nach Portfolios zu suchen, die normalerweise synchron ver?ndern. Wenn das Preisverh?ltnis dieser Verm?genswerte ungew?hnlich abgewichen ist, ergeben sich Arbitrage -M?glichkeiten. Auf dem Kryptow?hrungsmarkt ist die statistische Arbitrage besonders weit verbreitet, haupts?chlich aufgrund der Ineffizienz und drastischen Marktschwankungen des Marktes selbst. Im Gegensatz zu den traditionellen Finanzm?rkten arbeiten Kryptow?hrungen rund um die Uhr und ihre Preise sind ?u?erst anf?llig für Verst??e gegen Nachrichten, Social -Media -Stimmung und technologische Upgrades. Diese konstante Preisschwankung schafft h?ufig Preisgestaltung und liefert Arbitrageure mit

Python Iter und n?chstes Beispiel Python Iter und n?chstes Beispiel Jul 29, 2025 am 02:20 AM

Iter () wird verwendet, um das Iteratorobjekt zu erhalten, und als n?chstes () wird das n?chste Element erhalten. 1. Verwenden Sie Iterator (), um iterable Objekte wie Listen in Iteratoren umzuwandeln. 2. Rufen Sie als n?chstes an () an, um Elemente nacheinander zu erhalten, und ausl?sen Sie die Ausnahme der Stopperation, wenn die Elemente ersch?pft sind. 3. Verwenden Sie als n?chstes (Iterator, Standard), um Ausnahmen zu vermeiden. 4. Benutzerdefinierte Iteratoren müssen die Methoden __iter __ () und __Next __ () implementieren, um die Iterationslogik zu kontrollieren; Die Verwendung von Standardwerten ist ein h?ufiger Weg zum sicheren Traversal, und der gesamte Mechanismus ist pr?gnant und praktisch.

See all articles