Einführung in Python Net Frameworks für Anfänger

So viel wie dieser Punkt Juni 10, 2018. Seitdem Sie dies herausfinden, ist es stabil zu verzaubern, dass Sie sich für Python interessieren – und selbst Sie haben bereits begonnen, diese großartige Sprache zu lernen. Es scheint nicht zu entmutigend, angemessen? Es ist gut, trotz allem gut zufällig zu codieren. Daher ist es angebracht, die Variationen in der Syntax zu erfassen. Lassen Sie uns noch einmal kurz auf das Sammeln treuer Erfahrungen in Python eingehen. Konzentrieren wir uns auf die Entwicklung Ihres ersten Python-Projekts. Wo schließen Sie ein? Mit einer Theorie, klar, aber das wird kein Feld sein. Völlig haben Sie bereits einige bergige Ideen, angemessen, etwas von dieser kostbaren Freizeit und Rücksicht erwartend. Was folgt dann? Der Austausch eines Frameworks. Und das ist der Punkt, an dem das eigentliche Rätsel beginnt. Der Mythos über das Ökosystem der Python-Frameworks ist ein wenig tiefgreifend und abwechslungsreich. Hier werden die typischsten Python-Frameworks beschrieben. Wir hoffen, dass dies mehr als ausreicht, um die passende Tasche zu kaufen und loszulegen. Seien Sie jedoch gewarnt, dass diese Liste fürchterlich subjektiv ist. Es ist hauptsächlich auf den Mythos unserer kollektiven Erfahrung zurückzuführen, diese Rahmenbedingungen in den Projekten anzuwenden, an denen wir gearbeitet haben. Inhaltsverzeichnis I. Was sind Web-Frameworks? II. Django Beispielmodell in Django III. Flasche Probenblick in Flasche IV. Pyramide Probieren Sie die App „Hey world“ in Pyramid V. web2py Beispielmodell in web2py VI. Sanic Umgang mit Websockets in Sanic VII. Japronto Probieren Sie die App „Hey world“ in Japronto aus VIII. aiohttp Websocket-Client der Mitarbeiter von aiohttp IX. Verdrehte inlineCallbacks-Code in Twisted X. Falcon Beispiel-App „Hey world“ in Falcon XI. API Star Schemaüberprüfung für Ansichten in API Star XII. Andere Python-Webkonstruktionsframeworks XIII. Was ist eines der wichtigsten traditionellen Webframeworks? XIV. Prime Python-Frameworks – Infografik XV. Weitere Gedanken zu Python-Webframeworks I. Was sind Web-Frameworks? Bevor Sie sich für einen expliziten Ersatz des Frameworks entscheiden, sollten Sie sicherstellen, dass wir uns in Formulierungen von Definitionen auf der gleichen Webseite befinden. Was genau werden wir in Gedanken haben, wenn wir uns auf ein Webanwendungs-Framework konzentrieren? Kurz gesagt, ein Webframework ist eine Ausstattung mit allgemeinen Funktionen, die dem Entwickler das Entwickeln von Webanwendungen vereinfacht. Es dient als Abkürzung, die es dem Privaten ermöglicht, sinnlosen Code zu schreiben, indem vorhandene Lösungen wiederverwendet werden. Durch diese Fertigkeit wird die Zeit, die Ihre Bauherren für das Schreiben von Code privat benötigen, verkürzt und ihre Arbeit vereinfacht. Net Frameworks können zusätzlich in zwei Kategorien unterteilt werden: Frontend und Backend. Das sanfte, zusätzlich als CSS anerkannte Framework, dreht sich alles um das Klima der Hol-App, mit der der Kunde die Idee hat und zusammenarbeitet. Letzteres betrifft die Motivationsaspekte bei der Entwicklung einer Web-App. Der bekannte Vorteil des Einsatzes von Python-Frameworks besteht darin, dass Sie Frontend- und Backend-Teile in jedem Framework gut mischen können, um das angegebene Ergebnis zu erzielen. Vermutlich ist es gut, beide Schwerpunkte zufällig auf einen Punkt zu konzentrieren oder mehrere davon zu verschmelzen, abhängig vom Umfang Ihres Projekts. Durch die Bereitstellung von vorgefertigten Lösungen fügen die Entwickler von Web-App-Frameworks komplexe und dynamische Teile hinzu, die ansonsten sehr fortschrittlich oder zeitaufwändig sein könnten, um von Grund auf neu zu erstellen. II. Django Das traditionellste Python-Framework ist Django. Das Markenzeichen von Django ist, dass es die gesamten Instrumente bietet, mit denen Sie eine Webanwendung in einem einzigen Gerät erstellen können, von niedrig bis exzessiv. Django-Fähigkeiten bestehen darin, mit einem Ursprungs-Sample wie MVC, dem sogenannten MVT-Sample (Model-Leer-Template), zu konservieren. Die Modelle beschreiben den Einsatz des Django ORM, während SQL-Datenbanken hauptsächlich als Speicher verwendet werden. Django verfügt über ein integriertes Admin-Panel, das die einfache Verwaltung des Angebotsmaterials der Datenbank berücksichtigt. Bei minimaler Konfiguration wird diese Anzeige routinemäßig unter Berücksichtigung der beschriebenen Minianwendungen erstellt. Ansichten können sowohl Funktionen als auch Klassen enthalten, und die Aufgabe, URLs zu Ansichten zu erstellen, wird in einem einzigen Bereich (der urls.py-Datei) erledigt, sodass Sie nach dem Überprüfen dieser einzelnen Datei gut lernen können, welche URLs unterstützt werden. Templates werden mit einer ganz einfachen Django Templates-Maschine erstellt. Django wird für seine solide Nachbarschaftshilfe und die detaillierte Dokumentation der Funktionalität des Frameworks gelobt. Diese Dokumentation in Verbindung mit dem Erhalt einer vollständigen Atmosphäre nach der Installation macht die Eintrittsschwelle ziemlich niedrig. Sobald Sie während des zuverlässigen Tutorials gekämpft haben, haben Sie die Wahl, die für die Erstellung einer Anwendung erforderlichen Dinge zu erledigen. Leider hat Djangos Monolithismus auch seine Nachteile. Es ist fortgeschritten, wenn auch jetzt nicht jetzt machbar, als eines der entscheidenden Einbauteile angesehene Teile mit einer anderen Implementierung auszutauschen. Wenn Sie beispielsweise ein anderes ORM verwenden (bewundern Sie SQLAlchemy), müssen Sie solche Objekte motivieren oder ausschließlich neu erstellen, da das Administrationsfenster, die Autorisierung, die Sitzung oder das Generieren von Formularen erforderlich sind. Da Django vollständig, aber unflexibel ist, ist es für typische Fähigkeiten (d. H. Die große Mehrheit der Instrumentenprojekte) meilenweit aufrecht. Falls Sie jedoch unkonventionelle Originate implementieren müssen, führt dies zu einer Bekämpfung des Frameworks in einer Situation, in der es zu einer glänzenden Programmierung kommt. Beispielmodell in Django              Beispielmodell in Django                            Klasse Firm (gadgets.Model):     title=gadgets.CharField (max_length=100)     E-Mail=Gadgets.EmailField (max_length=    website_url=gadgets.URLField (easy=Rechtmäßig, null=Rechtmäßig)     metropolis=gadgets.CharField (max_length=    avenue=gadgets.CharField (max_length=    size=gadgets.IntegerField (null=erlaubt, easy=erlaubt)     date_founded=gadgets.CharField (         help_text=’MM / YYYY’, null=erlaubt, easy=erlaubt, max_length=7,     )     @Eigentum     def urls (self):         Rückkehr {             ‘gaze’: umkehren (‘gaze-company’, args=(self.pk,)),             ‘edit’: reverse (‘edit-company’, args=(self.pk,)),         }     def __unicode __ (self):         return self.title      III. Flasche Man glaubt, dass es sich bei Flask um ein Mikro-Framework handelt. Es kommt mit typischer Funktionalität, wobei zusätzlich auf eine einfache Erweiterung geachtet wird. Daher funktioniert Flask besser, weil der Klebstoff es Ihnen ermöglicht, Bibliotheken miteinander zu verbinden. Beispiel: “Pure Flask” bietet jetzt keine Speichererleichterung mehr, es gibt jedoch zahlreiche Implementierungen, die Sie möglicherweise gut einrichten und austauschbar für dieses Motiv einsetzen können (z. B. Flask-SQLAlchemy, Flask-MongoAlchemy und Kolben-Redis). Ebenso ist die typische Template-Maschine Jinja2, aber es ist gut möglich, dass Sie einen Ersatz verwenden (bewundern Sie Mako). Das Motto dieses Frameworks lautet „eine Abfahrt nach der anderen“ und dies spiegelt sich in seiner gesamten Dokumentation wider. Die Vorschläge zur Erstellung eines Antrags gehen in Teilen hier ein. Nachdem Sie einige Absätze kennengelernt haben, haben Sie möglicherweise die Möglichkeit, typische Aufgaben zu atomisieren. Sie sind nicht privat, um die überlegeneren Dinge direkt zu kennen – Sie werden es lernen, wenn Sie es wirklich wollen. Dank dessen können College-Studenten von Flask mühelos ihr Wissen wiedergeben und daraus Langeweile ableiten, sodass Flask für das Studium aufgerichtet ist. Viele Flask-Erweiterungen werden nun leider nicht zusätzlich unterstützt, da das Framework selbst. Etwas ununterbrochen kommt es vor, dass die Walk-Ins nun nicht mehr entwickelt werden oder deren Dokumentation bisher üblich ist. Bewundern Sie diese Umstände, müssen Sie einige Zeit damit verbringen, einen Ersatz zu googeln, der identische Funktionen bietet und reibungslos aktiv unterstützt wird. Wenn Sie Ihre Anwendung mit Paketen zahlreicher Autoren erstellen, gehen Sie in den privaten Bereich, um ein wenig Schweiss aufzubauen und sie miteinander zu integrieren. Sie werden nicht ständig vorgefertigte Anweisungen wiederholen, um dies in der Dokumentation der Walk-Ins abzuschließen, aber in solchen Fällen sollten die Umgebung von Flask und Websites wie Stack Overflow von Vorteil sein. Probenblick in Flasche              Probenblick in Flasche                            @ image_view.route (     ‘/ api // produkte // fotos’,     Vorschläge=[‘GET’], ) @auth_required () @documented (prod_id=”ID eines Produkts”) @output (ProductImagesSeq) @ Fehler (MissingProduct) @jsonify def images_get (model, prod_id):     “” Ruft eine Liste der Produktfotos ab. “”     Rückkehr [i.serialize() for i in find_product(prod_id).images]      IV. Pyramide Pyramid, das dritte bemerkenswerte Python-Webframework, basiert auf zwei weiteren Produkten, die jetzt nicht mehr entwickelt werden: Pylons und repoze.bfg. Das von seinen Vorgängern hinterlassene Erbe hat Pyramid dazu veranlasst, sich treu einem äußerst abgenutzten und präzisen Projekt anzupassen. Die Philosophien von Pyramid und Django unterscheiden sich erheblich, trotz der unbestreitbaren Wahrheit, dass beide im selben Jahr veröffentlicht wurden (2002). Pyramid ist nicht mehr wie Django einfach anzupassen und ermöglicht es Ihnen, Teile auf eine Weise zu erstellen, die die Autoren des Frameworks selbst nicht vorausgesehen hatten. Der Programmierer ist jetzt nicht mehr in der Lage, Framework-Idiome zu verwenden. Es soll ein genaues Gerüst für komplexe oder höchst untypische Projekte sein. Pyramide ist bestrebt, ausdauernd agnostisch zu sein. Ein gebündeltes Datenbankzugriffsmodul gibt es derzeit noch nicht. Eine typische Vorgehensweise besteht darin, Pyramid mit dem hochwirksamen, abgenutzten SQLAlchemy ORM zu kombinieren. Offensichtlich ist dies nur die traditionellste Formulierung, um zu wechseln. Es steht Programmierern frei, keine Themenübungen zu erwerben, die ihnen am besten entsprechen, z. B. die Verwendung des Peewee-ORM, das Schreiben von unformatierten SQL-Abfragen oder die Integration in eine NoSQL-Datenbank, um nur einige zu nennen. Alle Alternativen sind initiiert, obwohl diese Art von Erfahrung erfordert, um die angegebenen Persistenzmechanismen mühelos zum Projekt hinzuzufügen. Das Gleiche gilt für andere Teile, wie zum Beispiel das Templating. Offenheit und Freiheit sind das, worum es bei Pyramid geht. Die damit gebündelten Module wiederholen sich nur auf der Abrufebene, und die Kunden sind beeindruckt, dass sie Pakete für Drittfeiern kaufen können, die andere Aspekte ihrer Projekte erleichtern. Andererseits verursacht dieses Modell einen spürbaren Overhead vor allem von Originalprojekten. Der Mythos besagt, dass Sie einige Zeit darauf verwenden müssen, die Instrumente auszuwählen und zu integrieren, mit denen Ihre Crew zufrieden ist. Lautlos, wenn Sie sich die Mühe machen, weitere Entscheidungen für die Dauer der frühen Arbeitsphasen zu treffen, werden Sie mit einem Setup belohnt, das es einfach und glücklich macht, ein originelles Projekt zu initiieren und weiterzuentwickeln. Die Pyramide ist ein selbsternannter “Initiator”, der ein breites, verteidigungsorientiertes Gerüst erreicht. Dies macht sie zu einem akzeptablen Instrument für erfahrene Bauherren, die jetzt nicht mehr das lange Spiel spielen und in erster Linie besonders mühsam arbeiten möchten innerhalb der ersten Tage ein einzelnes Feature auszuliefern. Viel weniger erfahrene Programmierer können sich auch einschüchtern lassen, wenn man der Realität erzählt. Probieren Sie die App „Hey world“ in Pyramid              Probieren Sie die App „Hey world“ in Pyramid                            aus wsgiref.simple_server make_server importieren aus pyramid.config importieren Sie den Konfigurator from pyramid.response import Antwort def hallo_welt (bauen sie eine abfrage auf):    Antwort zurück (‘Hey, Welt!’) if __name__==’__main__’:    mit Configurator () als config:        config.add_route (‘grüß dich’, ‘/’)        config.add_view (hallo_welt, route_name=’grüß dich’)        app=config.make_wsgi_app ()    server=make_server (‘0.0.0.0’, 6543, app)    server.serve_forever ()      V. web2py Web2py wurde in 10 erstellt und ist ein Framework vor allem, das als Unterrichtsinstrument für Schüler konzipiert wurde. Daher wurde die Hauptzählung für die Autoren zu einer einfachen Konstruktion und Bereitstellung . Web2py ist stark beeindruckt von Django und Ruby on Rails, die die Prämisse der Konvention über die Konfiguration teilen. Mit anderen Worten, web2py bietet viele angemessene Standardeinstellungen, die es den Buildern ermöglichen, schnell den Grund abzusacken. Diese Art zusätzlich gibt es viel Pralinen mit web2py gebündelt. Sie werden alles wiederholen, was Sie von einem Web-Framework erwarten, zusammen mit einem eingebauten server, HTML-generierenden Hilfsprogrammen, Formularen, Validatoren und vielem mehr. Das Erhöhen der Verfügbarkeit für mehrere Datenbank-Engines ist eine Kleinigkeit, obwohl es für frische Web-Frameworks ein prächtiger typischer Vorteil ist. Andererseits können Sie auch einige andere gebündelte Teile überraschen, da sie in anderen Frameworks nicht als Hinweis erscheinen: Helfer für die Entwicklung von JavaScript-fähigen Sites mit jQuery und Ajax; Scheduler und Cron; 2-Nachzählung Authentifizierungshelfer; Absender der Nachricht für Textgebotsunterlagen; ein Turnier-Ticketautomat, der unter Berücksichtigung computergestützter Komplikationen, die nicht öffentlich in der Fertigungsatmosphäre auftraten, die Bauherren beschäftigt. Das Framework behauptet stolz, eine Rotund-Stack-Lösung zu sein, die alles bietet, was Sie sich auch nur wünschen können. Web2py verfügt über eine ausführliche Online-Dokumentation. Es führt Erstsemester von Klasse zu Klasse und beginnt mit einer kurzen Einführung in die Python-Sprache. Die Einführung ist nahtlos mit der Entspannung des Handbuchs verbunden und demonstriert zahlreiche Aspekte von web2py in einer ansprechenden Formulierung mit Hunderten von Codeausschnitten und Screenshots. Das Viertel von web2py ist trotz seiner Wettbewerbsvorteile kein Thema und kritisch kleiner als das von Django und sogar das von Pyramid. Weniger Bauherren, die von dieser Methode Gebrauch machen, vermindern Ihre Möglichkeiten, Abhilfe zu schaffen und Abhilfe zu schaffen. Die zuverlässige Mailingliste ist grundsätzlich träge. Zusätzlich – und leider – wird web2py mit Python 3 in der angegebenen Zeit nicht mehr bewundert. Diese Reihenfolge stellt die Möglichkeiten des Frameworks in Frage, da die Erleichterung für Python 2 mit 2020 endet. Dieses Feld wird im Github des Projekts angesprochen. Hier ist der Unterschied, es ist möglich, dass Sie die Entwicklung gut auf dem Bildschirm anzeigen. Beispielmodell in web2py              Beispielmodell in web2py                            Klassenanzeigen (BaseModel):     tablename=”Werbung”     def set_properties (self):         T=self.db.T         self.fields=[ # main Field(“title”, “string”), Field(“description”, “text”), Field(“picture”, “upload”), Field(“thumbnail”, “upload”), Field(“link”, “string”), Field(“place”, “string”) ]         self.computations={             “thumbnail”: lambda r: THUMB2 (r [‘picture’], gae=self.db.build auseinander eine Abfrage zu.env.web2py_runtime_gae)     }         self.validators={             “title”: IS_NOT_EMPTY (),             “description”: IS_LENGTH ((*********************************************)),             “tell”: IS_IMAGE (),             “situation”: IS_IN_SET ([“top_slider”, “top_banner”, “bottom_banner”, “left_sidebar”, “right_sidebar”, “inside_article”, “user_profile”], null=keine)         }      VI. Sanic Sanic unterscheidet sich erheblich von den oben genannten Frameworks in Bezug auf Mythen. Im Gegensatz zu diesen ist es ein Meilenstein, mit Asyncio zu sparen – Pythons Toolbox für asynchrone Programmierung, die mit der typischen Bibliothek aus Modell 3.4 gebündelt ist. Um mit Sanic Einsparungsprojekte zu verwirklichen, müssen Sie zuerst die Richtlinien in Bezug auf das Motiv von Asyncio beseitigen. Dies beinhaltet viel theoretisches Wissen über Koroutinen, gleichzeitige Programmiervorbehalte und sorgfältige Überlegungen zu den in der Anwendung enthaltenen Tipps. Sobald Sie Ihren Kopf um Sanic / Asyncio legen und den Rahmen für eine akzeptable Nachzählung anwenden, zahlt sich die Mühe aus. Sanic ist unglaublich unbezahlbar, wenn es darum geht, langlebigen Verbindungen wie Websockets zu begegnen. Wenn Ihr Projekt Erleichterungen für Websockets oder lang anhaltende API-Aufrufe von außen erfordert, ist Sanic ein gewaltiger Ersatz. Ein weiterer Anwendungsfall von Sanic ist das Schreiben einer „Glue-Web-Anwendung“, die als Vermittler zwischen zwei Subsystemen mit inkompatiblen APIs fungieren kann. Voraussetzung dafür ist allerdings ein Minimum von Python 3.5. Der Rahmen soll sehr bissig sein. Eine seiner Abhängigkeiten ist uvloop – jede andere ist ein Ersatz für Asyncios nicht mehr so ​​geeignete eingebaute Turnierschleife. Uvloop ist ein Wrapper um libuv, die identische Engine, die Node.js antreibt. Laut der uvloop-Dokumentation arbeitet Asyncio auf diese Weise zwei- bis viermal schneller. In Ausdrücken von “Was ist in der Schachtel” bietet Sanic nicht so mächtig wie andere Frameworks. Es ist ein langer Weg ein Microframework, angemessen Flask zu bewundern. Anders als Routing und andere typische Pralinen mit Web-Link bewundern Dienstprogramme für das Anzeigen von Cookies und das Streamen von Antworten. Sanic imitiert Flask, um dies zu veranschaulichen, indem es das Konzept von Blueprints teilt – seine kleinen Unterfunktionen, mit denen Builder ihren Code in höheren Funktionen trennen und in Angriff nehmen können. Sanic ist außerdem kein geeigneter Ersatz für einfache CRUD-Funktionen, die nur typische Datenbankoperationen zerstören. Es wird angemessen sein, sie ohne eine in Betracht gezogene Hilfe weiter zu zerstäuben. Umgang mit Websockets in Sanic              Umgang mit Websockets in Sanic                            @ app.websocket (‘/ websocket’) asynchrone Def-Zeit (Websocket, Pfad):    während erlaubt:       now=datetime.datetime.utcnow (). isoformat () + ‘Z’       Vorhersage von websocket.ship (jetzt)       prognostizieren asyncio.sleep (random.random () * 3)      VII. Japronto Gewinnen Sie, dass Sie sich jemals vorgestellt haben, gegen 1 (*********************************************************************) Anfragen pro Sekunde mit Python? Es scheint unwirklich, da Python nicht die schnellste verfügbare Programmiersprache ist. Als jedoch einmal ein funkelnder Schalter gesetzt wurde, so dass Sie der typischen Bibliothek nur noch Asyncio hinzufügen müssen, ergaben sich unzählige Chancen. Japronto ist ein Mikroframework, das einige davon nutzt. Mit welcher Fertigkeit dieses Python-Framework einst die magische Grenze von 1 Million Anfragen, die pro Sekunde bearbeitet wurden, überschritten hat. Es ist gut, per Zufall wohl auch glatt zu sein, ratlos, wie das genau möglich ist. Alles läuft auf 2 Asse in Japrontos Ärmel hinaus: uvloop und PicoHTTPParser. Uvloop ist ein asynchrones Backend für das Speichern mit libuv, während PicoHTTPParser ein leichtgewichtiger HTTP-Header-Parser ist, der in C geschrieben wurde. Alle Kernteile des Frameworks sind zusätzlich in C implementiert Effizienz. Japronto ist für bestimmte Aufgaben konzipiert, die derzeit vermutlich nicht mit aufgeblähten Mainstream-Frameworks abgeschlossen werden. Es ist bei weitem eine ideale Ergänzung für Komplikationen, die sich alle Nanosekunden unterscheiden. Ausgebildete Bauherren, die sich für die Optimierung begeistern, werden alle möglichen Vorteile nutzen. Darüber hinaus soll Japronto eine genaue Grundlage für Microservices bieten, die REST-APIs mit minimalem Overhead verwenden. Mit anderen Worten, es ist jetzt nicht mächtig in der Box. Entwickler, die nur für Privatanwender geeignet sind, setzen das Routing für den Aufenthaltsort auseinander und erreichen einen Namen, bei dem auch synchrone oder asynchrone Handler problemlos eingesetzt werden können. Wahrscheinlich ist dies eher ein Zufall, aber wenn eine einzelne Abfrage zusätzlich in einer synchronen Formulierung verarbeitet werden kann, sollten Sie nicht danach streben, sie asynchron abzuschließen, da der Aufwand für das Wechseln zwischen Coroutinen die Effizienz einschränkt. Etwas miserabel ist, dass Japronto derzeit nicht aktiv weiterentwickelt wird. Auf der anderen Seite ist das Projekt unter MIT lizenziert, und der Erfinder behauptet, er sei inspiriert, Beiträge fair einzusacken. Liebe Sanic, das Framework soll mit Python 3.5+ -Varianten funktionieren. Probieren Sie die App „Hey world“ in Japronto              Probieren Sie die App „Hey world“ in Japronto aus                            aus dem japronto import Utility def howdy (bauen Sie eine Abfrage auf):     return baue eine Abfrage auseinander an.Response (textuelles Gebotsmaterial=’Hey world!’) app=Utility () app.router.add_route (‘/’, grüß dich) app.tear (debug=erlaubt)      VIII. aiohttp Aiohttp ist eine weitere Bibliothek, die Asyncio, das typische Python-Toolkit zum Schreiben von asynchronem Code, verwendet. Aiohttp ist kein Framework im eigentlichen Sinne mehr, sondern eher eine Toolbox, die das asynchrone Arsenal mit allem, was mit HTTP zu tun hat, ergänzt. Dies bedeutet, dass aiohttp nicht nur für das Schreiben von Serverfunktionen, sondern auch für Clients von unschätzbarem Wert ist. Jeder wird von Asyncios Pralinen unterstützt, was die gesamte Fähigkeit ausmacht, Hunderte von Verbindungen zur gleichen Zeit zu bewältigen, sofern die große Mehrheit der Vorgänge E / A-Aufrufe umfasst. Solche hochwirksamen Clients sind für den Fall, dass Sie viele API-Aufrufe sofort ausführen müssen, um sie für das Scraping von Websites zu veranschaulichen, ein Bergwerk. Ohne Asyncio ist es durchaus möglich, dass Sie privat die Möglichkeit haben, Threading oder Multiprocessing zu verwenden. Dies kann auch schwieriger sein, die richtige Methode zu finden, und erfordert mehr Arbeitsspeicher. Neben dem Aufbau von Standalone-Funktionen sind die aiohttp-Clients eine gebirgige Ergänzung zu allen asynchronen Anwendungen, die hauptsächlich darauf abzielen, HTTP-Aufrufe ohne Blockierung abzuwehren. Das Gleiche ist Candy für Websockets. Da es sich um Fragmente der HTTP-Spezifikation handelt, ist es möglich, dass Sie eine Verbindung zu Websocket-Servern herstellen und ohne Gefahr Nachrichten durch diese ersetzen. In Phrasen von Servern bietet Ihnen aiohttp alles, was Sie von einem Mikroframework erwarten können. Das sofort zugängliche Klima umfasst Routing, Middleware und Indikatoren. Es scheint auch zu bewundern, dass es sehr wenig ist, aber dies kann sogar für einen Webserver ausreichen. “Was ist mit den Top-Funktionen?” Können Sie auch Quiz. So weit es diese betrifft, ist es möglich, dass Sie die Entspanntheit der Funktionen, die von einer oder mehreren asynchron bewunderten Bibliotheken verwendet werden, gut fabrizieren. Sie werden haufenweise von ihnen die Verwendung von Quellen bewundern. Aiohttp ist mit dem Testen in Gedanken aufgebaut. Entwickler, die sich privat mit einer auf aiohttp basierenden Anwendung beschäftigen, werden es besonders mit pytest sehr einfach machen. Auch wenn aiohttp standardmäßig eine ausreichende Effizienz bietet, gibt es ein paar niedrig hängende Früchte, die Sie wahrscheinlich gut kaufen werden. Zum Beispiel ist es gut möglich, dass Sie weitere Bibliotheken einrichten: cchardet und aiodns. Aiohttp erkennt sie routinemäßig. Es ist gut, zufällig den identischen uvloop zu verwenden, der Sanic antreibt. Endgültig, aber nicht zuletzt: Ein klarer Vorteil von aiohttp ist, dass es Meilen sind, die aktiv gepflegt und weiterentwickelt werden. Die Auswahl von aiohttp für den Fall, dass Sie Ihre nachfolgende Anwendung fabrizieren, ist absolut angemessen. Websocket-Client der Mitarbeiter von aiohttp              Websocket-Client der Mitarbeiter von aiohttp                            async mit session.ws_connect (‘http://example.org/ws’) als ws:     async für msg in ws:         if msg.kind==aiohttp.WSMsgType.text:             if msg.files==’terminate cmd’:                 prognostizieren ws.terminate ()                 verwöhnen             sonst:                 prognostizieren ws.send_str (msg.files + ‘/ confirm’)         elif msg.kind==aiohttp.WSMsgType.ERROR:             verwöhnen      IX. Verdrehte Mit Twisted gelang es den Python-Entwicklern, die asynchrone Programmierung lange früher abzuschließen, als es einst kalt wurde. Twisted gilt als eines der ältesten und am meisten abgenutzten Python-Projekte überhaupt. Auf der in 255 veröffentlichten Grundlage ist Twisted sogar älter als PEP8, sodass der Code des Projekts die berüchtigten Code-Style-Guide-Lösungen jetzt nicht mehr praktiziert. Zugegebenermaßen kann dies die Amerikaner sogar eher davon abhalten, sie in der angegebenen Zeit einzusetzen. Das Herzstück von Twisted ist eine turniergetriebene Netzwerk-Engine, die als Reaktor bekannt ist. Es wird zum Planen und Anrufen bestimmter, von Personen umrissener Rückrufe verwendet. Erstens mussten Builder explizite Rückrufe verwenden, indem sie Funktionen definierten und nacheinander weitergaben, um festzustellen, ob ein Vorgang erfolgreich war oder fehlgeschlagen ist. Obwohl diese Maschine einst überzeugend war, wird sie auch zu dem führen, was wir aus dem frühen JavaScript kennen: der Rückruf-Hölle. Mit anderen Worten, der folgende Code war früher schwer zu lesen und zu analysieren. In unbestimmter Zeit in der Zukunft brachte Twisted inlineCallbacks auf den Markt – die Notation zum Schreiben von asynchronem Code, der früher so einfach zu lesen war wie standardmäßiger synchroner Code. Diese Lösung arbeitete gründlich mit Pythons Syntax und beeinflusste das Standard-Async-Toolkit aus der typischen Bibliothek, Asyncio. Der ideale Vorteil dieses Frameworks besteht darin, dass, selbst wenn Twisted selbst für eine Engine mit wenigen gebündelten Erweiterungen geeignet ist, eine Reihe weiterer Erweiterungen verfügbar sind, um die Funktionalität zu erweitern. Sie ermöglichen sowohl Low-Stage-Netzwerkprogrammierung (TCP / USP) als auch übermäßige Arbeit in der Anwendungsphase (HTTP, IMAP, SHH und viele andere). Dies macht Twisted zu einem idealen Ersatz für das Schreiben, wenn der Realität sachkundige Unternehmen und Produkte mitgeteilt werden. alternativ ist es meilenweit kein geeigneter kandidat für standard-webfähigkeiten. Entwickler würden privat eine Menge Dinge auf ihre ganz privaten schreiben, um die Funktionalität, die sie repräsentieren, ohne Rücksicht auf Django zu übernehmen. Twisted wird aktiv gepflegt. Es wird derzeit versucht, den gesamten Code zu migrieren, damit er mit Python 3 bewundert werden kann. Die Kernfunktionalität wurde in der Vergangenheit einmal umgeschrieben, aber viele Third-Celebration-Module sind problemlos mit neueren Variationen des Interpreters nicht kompatibel. Dies kann auch einige Probleme aufwerfen, unabhängig davon, ob Twisted der ideale Ersatz für neuere Projekte ist oder nicht. Auf der anderen Seite ist es meilenweit abgenutzter als einige asyncio-basierte Lösungen. Außerdem gibt es Twisted bereits seit einiger Zeit, und diese Methode kann ohne Zweifel für eine angemessene Zeit auf ein Minimum beschränkt werden. inlineCallbacks-Code in Twisted              inlineCallbacks-Code in Twisted                            @inlineCallbacks def getUsers (self):     streben:         responseBody=yield makeRequest (“GET”, “/ customers”)     mit Ausnahme von ConnectionError:         log.failure (“makeRequest aufgrund eines Verbindungsfehlers fehlgeschlagen”)         Rückgabewert([])     returnValue (json.loads (responseBody))      X. Falcon Falcon ist ein weiteres Mikroframework auf unserer Liste. Ziel des Falcon-Projekts ist es, eine minimalistische Grundlage für die Erstellung von Web-Apps zu schaffen, die die geringsten Gemeinkosten verursacht. Autoren des Frameworks behaupten, es handele sich meilenweit um ein stahlfreies Toolkit, mit dem sich sehr schnelle Backend-Codes und Microservices erstellen lassen. Außerdem ist es mit Python 2 und 3 meilenweit bewundernswert. Ein großer Vorteil von Falcon ist, dass es meilenweit sehr bissig ist. Auf seinen Websites veröffentlichte Benchmarks, die einen schönen Vorteil gegenüber Mainstream-Lösungen bieten, bewundern Django oder Flask. Die Strategie dahinter ist jedoch, dass Falcon nur sehr wenig zu bieten hat. Es gibt Routing, Middleware und Hooks – und das ist durchgehend alles. Es gibt jetzt keine Extras mehr: keine Validierung, keine Authentifizierung und viele andere. Es ist genauso wichtig wie der Entwickler, die Funktionalität so signifikant zu verlängern. Falcon geht davon aus, dass dies für die Erstellung von REST-APIs verwendet werden kann, die sich auf JSON konzentrieren. Wenn dem so ist, möchten Sie wirklich keine Konfiguration. Es ist gut, sich zufällig hinzusetzen und zu programmieren. Dieses Mikro-Framework könnte per Zufall ein aufregendes Angebot sein, um hochindividuelle Unternehmen und Produkte zu etablieren, die nach der bestmöglichen Effizienz fragen. Falcon ist der ultimative Ersatz für den Fall, dass Sie keine asynchronen Lösungen bevorzugen oder nicht in diese investieren können. Während Sie darüber nachdenken, “Jedes Mal ist die beste Lösung die ideale”, können Sie sich auch positiv in den Mythos Falcon verwandeln. Beispiel-App „Hey world“ in Falcon              Beispiel-App „Hey world“ in Falcon                            Importfalke Klasse QuoteResource: def on_get (self, req, resp):     quote={         ‘quote’: (             “Ich habe mich immer mehr angezogen”             “Die lange Träne als in der Vergangenheit.”         ),         Schöpfer: Grace Hopper     }     resp.media=quote api=falcon.API ​​() api.add_route (‘/ quote’, QuoteResource ())      XI. API Star API Star ist das ursprüngliche Kind auf dem Block. Es ist noch ein weiteres Mikroframework, aber dieses ist nur mit Python 3 zu bewundern. Was jetzt nicht schrecklich ist, basiert auf Mythen, die in Python 3.5 veröffentlicht wurden. API Star verwendet Artenhinweise als Notation, um Validierungsschemata in einer präzisen, deklarativen Formulierung zu erstellen. Diese Form des Schemas (in der Terminologie des Frameworks als “Art” bezeichnet) kann dann sicherstellen, dass eine Abfrage für ein gegenüberliegendes Feature getrennt wird. Darüber hinaus erstellten API Star-Teile routinemäßig API-Dokumente. Sie sind mit OpenAPI 3 bestens vertraut. Solche Dokumente können die Kommunikation zwischen API-Autoren und ihren Kunden, d. H. Frontend-Erstellern, erleichtern. Während Sie die erwähnten Arten verwenden, sind sie in den API-Dokumenten enthalten. Ein weiteres hervorstechendes Merkmal ist der Abhängigkeitsinjektionsmechanismus. Es scheint jede andere Lösung für Middleware zu sein, aber klüger und viel effektiver. Beispielsweise ist es gut möglich, dass Sie ein sogenanntes Gebot verfassen, das unseren Ansichten einen aktuell authentifizierten Benutzer zur Verfügung stellt. Auf der Blickbühne müssen Sie explizit anordnen, dass hierfür sogar eine Benutzerinstanz erforderlich sein kann. Die Entspannung erfolgt im Motiv der Szenen. API Star entscheidet, welche Ingredients ausgeführt werden müssen, um unseren Blick mit dem gesamten erforderlichen Wissen zum Abschluss zu zerreißen. Der Vorteil, den die computergesteuerte Abhängigkeitsinjektion gegenüber Standard-Middlewares hat, besteht darin, dass die Inhaltsstoffe jetzt keinen Overhead für die Ansichten auslösen, für die die AP festgelegt wurde Kunst, die sie jetzt machen, scheint nicht abgenutzt. Letztendlich kann API Star in einer veralteten, synchronen und WSGI-konformen Formulierung zusätzlich asynchron aufreißen. Dies macht es möglicherweise zum einzigen Standard-Framework in der Python-Welt, dem dies gelingt. Die Entspannung der mit API Star gebündelten Pralinen ist prächtig typisch: Nicht obligatorische Erleichterung beim Schablonieren mit jinja2, Routing und Turnierhooks. Alles in allem scheint API Star äußerst vielversprechend zu sein. Zum Zeitpunkt des Schreibens befinden sich mehr als 4 100 Sterne in seinem GitHub-Repository. Das Repository hat bereits einige Dutzend Mitwirkende, und Pull-Anforderungen werden täglich zusammengeführt. Viele von uns bei STX Next drücken für dieses Projekt die Daumen! Schemaüberprüfung für Ansichten in API Star              Schemaüberprüfung für Ansichten in API Star                            von apistar import formulare, validatoren Klasse Produkt (forms.Kind):      title=validators.String (max_length=90)      ranking=validators.Integer (minimum=1, most=5)      in_stock=validators.Boolean (Standard=Fälschung)      size=validators.String (enum=[‘small’, ‘medium’, ‘large’]) def create_product (Produkt: Produkt):     # Legen Sie ein Originalproduktdokument in der Datenbank fest.     … routen=[ Route(‘/create_product/’, method=’POST’, handler=create_product)]      XII. Andere Python-Webkonstruktionsframeworks Es gibt eine Menge weiterer Python-Web-Frameworks, die Sie ansprechend und unbezahlbar wiedergeben können. Jeder von ihnen hat sich auf ein bestimmtes Gebiet spezialisiert, wurde einmal offensichtlich zu Pflichten konstruiert oder hat eine explizite Geschichte. Das erste, was Gedanken mit sich bringt, ist Zope2, das als eines der wichtigsten ältesten Frameworks gilt und hauptsächlich als Fragment des Plone-CMS verwendet wird. Zope3 (später in BlueBream umbenannt) wurde einst als Nachfolger von Zope2 erstellt. Früher galt das Framework als Grundlage für die Erleichterung des Aufkommens bergiger Fähigkeiten, hat sich jedoch nicht zu sehr einen guten Ruf erarbeitet, vor allem nach dem Mythos des Privaten, um recht komplexe Ideen (z. B. Zope Bid Architecture) sehr früh in der pädagogischen Aufgabe zu erfassen. Bemerkenswert ist auch die Google App Engine, mit der Sie unter anderem in Python geschriebene Funktionen auflösen können. Mit dieser Plattform können Sie Funktionen in jedem mit WSGI bewunderten Framework bereitstellen. Das SDK für die App Engine enthält ein einfaches Framework, das als webapp2 bezeichnet wird, und diese genaue Formulierung wird häufig in Webfunktionen verwendet, die an diese Umgebung angepasst sind. Ein weiteres ansprechendes Beispiel ist Tornado, das von FriendFeed entwickelt und von Fb zugänglich gemacht wurde. Dieses Framework umfasst Bibliotheken, die Asynchronität unterstützen, sodass Sie Funktionen erstellen können, die mehrere gleichzeitige Verbindungen vereinfachen (Bewundern langer Abfragen oder WebSocket). Andere Bibliotheken wie Tornado umfassen Pulsar (async) und Gevent (greenlet). Mit diesen Bibliotheken können Sie alle Netzwerkfähigkeiten herstellen (Mehrspieler-Videospiele und Chatrooms, um dies zu veranschaulichen). Sie atomisieren außerdem gut bei HTTP-Anfragen. Steigende Fähigkeiten Der Einsatz dieser Frameworks und Bibliotheken ist fortgeschrittener und erfordert, dass Sie einige schwieriger zu löschende Ideen finden. Wir empfehlen Ihnen, sich nach einer Weile um sie zu kümmern, wenn Sie tiefer in die wunderbare Welt von Python eintauchen. XIII. Was ist eines der wichtigsten traditionellen Webframeworks? Stack Overflow, ein führendes Q & A-Viertel für das weltweite Entwicklerviertel, führt jährlich eine Entwickler-Beobachtung durch, in der gefragt wird, ob 09, (*************************************************************** Die Gape ist aus vielen Gründen attraktiv, nicht zuletzt aus den Statistiken, die das zunehmende Ansehen von Python bei den Bauherren weltweit belegen. Als eine der entscheidenden Fragen wurden die Entwickler gebeten, ihre beliebtesten Web-Frameworks in verschiedenen Programmiersprachen zu bewerten. Wie Sie sicher wissen werden, sind Python-Frameworks – neben Django und Flask – übermäßig schattiert: Quelle:                      XIV. Prime Python-Frameworks – Infografik Wäre es nicht schön, wenn Sie auch eine Zusammenfassung der hier aufgeführten Frameworks in einer einzigen Infografik zusammenfassen könnten? Erfolgreich, das ist genau das, was wir für Sie bereit haben! Prime Python Frameworks                      Klicken Sie hier, um die Infografik in zu hoher Auflösung zu betrachten XV. Verbleibende Gedanken Python bietet einen detaillierten Ersatz für Web-Frameworks, die alle ihre ganz privaten Stärken und Schwächen aufweisen. Bei STX Next setzen wir kein Themen-Framework ein, das zu einer bestimmten Projektspitze passt, und studieren auf Wunsch sogar die Originalen auf dem Paddel. Wir hoffen, dass diese Zusammenfassung zeigt, dass es möglich ist, dass Sie gut entscheiden, welches Framework Sie am meisten bewundern, und dass Sie sich zuerst mit diesem beschäftigen. Und jetzt ist es an der Zeit, einen Schalter zu zerstäuben. Lesen Sie einen Leitfaden oder suchen Sie einen Akademiker. Schreiben Sie einen Übungscode. Geburt für Ihr erstes Python-Projekt. Wenn Sie weitere Fragen zu Python haben, zögern Sie nicht, uns mitzuteilen, oder setzen Sie sich noch heute mit uns in Verbindung – wir beraten Sie gerne.                                              
Weiterlesen

Euch gefällt was ihr seht? Nehmt euch doch einen kurzen Moment und unterstützt uns auf Patreon!
Einführung in Python Net Frameworks für Anfänger 1