Heim  >  Artikel  >  Backend-Entwicklung  >  Welche Frameworks sind in Python verfügbar?

Welche Frameworks sind in Python verfügbar?

(*-*)浩
(*-*)浩Original
2019-06-15 15:34:0217265Durchsuche

Vor ein paar Tagen hat mir ein Freund eine Nachricht hinterlassen und gefragt: Wann wird es eine nützliche Zusammenfassung des Python-Frameworks geben (die Liste in diesem Artikel ist nur ein Teil davon und umfasst nicht alle Python-Frameworks), also die heutige Artikel war geboren. (Plötzlich fühle ich mich sehr gut)

Welche Frameworks sind in Python verfügbar?

Empfohlen: Django (Empfohlenes Lernen: Python-Video-Tutorial)

Django dürfte das bekannteste Python-Framework sein, GAE und sogar Erlang haben Frameworks, die davon betroffen sind. Django geht einen großen und umfassenden Weg. Es ist vor allem für sein vollständig automatisiertes Verwaltungs-Backend bekannt: Verwenden Sie einfach ORM und erstellen Sie einfache Objektdefinitionen, und es kann automatisch eine Datenbankstruktur und ein voll funktionsfähiges Verwaltungs-Backend generieren.

Vorteile:

Open-Source-Framework mit perfekter Dokumentationsunterstützung

Viele Lösungen, mehr interne Funktionsunterstützung

Elegante URL, vollständiges Routing-System

Self-Service-Backend-Management

Nachteile:

Das System ist eng gekoppelt und es ist sehr schwierig, es durch Ihre bevorzugte Bibliothek von Drittanbietern zu ersetzen, selbst mit einigen Patches wird sich auch sehr unangenehm anfühlen, wenn man darauf steigt.

Das mit Django gelieferte ORM ist weitaus weniger leistungsfähig als SQLAlchemy.

Die Vorlagenfunktion ist relativ schwach und kann keinen Python-Code einfügen. Um komplexere Logik zu schreiben, müssen Sie Python zum Implementieren von Tag oder Filter verwenden.

Empfehlung 2: Flask

Flask ist ein leichtes Webanwendungs-Framework, das in Python geschrieben ist. Basierend auf der Werkzeug WSGI-Toolbox und der Jinja2-Vorlagen-Engine. Flask wird auch als „Mikroframework“ bezeichnet, da es einen einfachen Kern verwendet und Erweiterungen verwendet, um zusätzliche Funktionalität hinzuzufügen. Flask verfügt standardmäßig nicht über eine Datenbank oder ein Formularvalidierungstool.

Vorteile:

Flask ist flexibler als Django und bietet Entwicklern mehr Flexibilität bei der Auswahl von Komponenten ORM (Object-Relational Mapping) oder müssen mit verschiedenen Workflow- und Vorlagensystemen interagieren.

Nachteile:

Flask ist nur ein Kernel und basiert standardmäßig auf zwei externen Bibliotheken: der Jinja2-Vorlagen-Engine und dem Werkzeug-WSGI-Toolset. Viele weitere Funktionen sind in Form von Erweiterungen eingebettet.

Empfehlung drei: Scrapy

Scrapy ist ein schnelles, in Python entwickeltes Screen-Scraping- und Web-Scraping-Framework auf hoher Ebene, das zum Scrapen von Websites und zum Extrahieren aus Extract verwendet wird strukturierte Daten von der Seite. Scrapy ist weit verbreitet und kann für Data Mining, Überwachung und automatisierte Tests verwendet werden.

Vorteile:

Scrapy ist ein sehr leistungsfähiges Crawler-Framework. Es kann nicht nur problemlos Anfragen erstellen, sondern verfügt auch über einen leistungsstarken Selektor, der Antworten problemlos analysieren kann die Geschwindigkeit des Crawlens und Parsens, sein Downloader ist Multithreading und Anfragen werden asynchron geplant und verarbeitet. Diese beiden Punkte machen die Kriechgeschwindigkeit sehr hoch.

Darüber hinaus gibt es integrierte Protokollierungs-, Ausnahme-, Shell- und andere Module, die die Crawling-Arbeit erheblich vereinfachen.

Nachteile:

Scrapy ist ein gekapseltes Framework. Es enthält einen Downloader, einen Parser, ein Protokoll und eine Ausnahmebehandlung. Es basiert auf Multithreading und Twisted-Processing Die Website bietet Vorteile in der Entwicklung, ist jedoch für das Crawlen von 100 Websites in Bezug auf die gleichzeitige und verteilte Verarbeitung nicht flexibel genug und lässt sich nur schwer anpassen und erweitern.

Empfehlung 4: Tornado

Tornado ist eine Open-Source-Version der Webserver-Software. Es gibt einen klaren Unterschied zwischen Tornado und den heutigen Mainstream-Webserver-Frameworks (einschließlich der meisten Python-Frameworks): Es ist ein nicht blockierender Server und recht schnell.

Vorteile:

Tornado zeichnet sich durch die Bereitstellung einer Infrastruktur für Anwendungen aus, die eine strenge Kontrolle über die Details asynchroner Netzwerke erfordern. Tornado bietet beispielsweise nicht nur einen integrierten asynchronen HTTP-Server, sondern auch einen asynchronen HTTP-Client. Daher eignet sich Tornado ideal zum Erstellen von Anwendungen wie Web Scrapern oder Bots, die parallel andere Websites abfragen und mit den zurückgegebenen Daten arbeiten.

Nachteile:

In den Vorlagen- und Datenbankteilen stehen viele Module von Drittanbietern zur Auswahl, was einer Kapselung in ein Funktionsmodul nicht förderlich ist.

Empfehlung 5: Web2py

web2py ist ein Webanwendungsframework mit vollem Funktionsumfang, das für die Python-Sprache bereitgestellt wird. Es wurde entwickelt, um Webanwendungen schnell und agil zu entwickeln , sichere und tragbare datenbankgesteuerte Anwendung, kompatibel mit Google App Engine.

Vorteile:

Die größte Attraktion von Web2py ist seine integrierte Entwicklungsumgebung. Wenn Sie eine Web2py-Instanz einrichten, erhalten Sie eine Weboberfläche, im Wesentlichen einen Online-Python-Anwendungseditor, in dem Sie die Komponenten Ihrer Anwendung konfigurieren können. Dies bedeutet normalerweise das Erstellen von Modellen, Ansichten und Controllern, die jeweils durch Python-Module oder HTML-Vorlagen beschrieben werden.

Nachteile:

Eine wichtige Einschränkung von Web2py besteht darin, dass es nur mit Python 2.x kompatibel ist. Dies bedeutet zunächst, dass Web2py die asynchrone Syntax von Python 3 nicht verwenden kann. Wenn Sie sich auf externe Bibliotheken verlassen, die es nur in Python 3 gibt, haben Sie Pech. Es wird jedoch daran gearbeitet, Web2py mit Python3 kompatibel zu machen, und die Arbeiten stehen zum Zeitpunkt des Verfassens dieses Artikels kurz vor dem Abschluss.

Empfehlung 6: Weppy

Weppy fühlt sich an wie die Mitte zwischen dem minimalistischen Stil von Flask und der Vollständigkeit von Django. Während die Entwicklung von Weppy-Anwendungen die Direktheit von Flash aufweist, verfügt Weppy über viele Funktionen von Django, wie z. B. Datenschicht und Authentifizierung. Daher eignet sich Weppy für Anwendungen von extrem einfach bis mäßig komplex.

Vorteile:

Die Dokumentation von Weppy hat den gleichen Stil wie das Framework selbst. Es ist sauber, lesbar und für den menschlichen Verzehr bestimmt. Neben den üblichen „Hallo Welt“-Anwendungsbeispielen ist auch ein gutes Walkthrough-Tutorial enthalten, mit dem Sie als Einsteigerprojekt ein Weibo-System erstellen können.

Nachteile:

Obwohl Weppy über einen Erweiterungsmechanismus verfügt, ist die Liste der offiziell genehmigten Add-ons klein, viel kleiner als das Erweiterungsverzeichnis von Flask.

Empfehlung 7: Flasche

Flasche kann als Miniflasche betrachtet werden, da sie kompakter und prägnanter ist als andere „Mikrorahmen“. Aufgrund seines minimalen Platzbedarfs eignet sich Bottle ideal für die Einbindung in andere Projekte oder für die schnelle Bereitstellung kleiner Projekte wie REST-APIs.

Vorteile:

Bottle erfordert nicht so viel Dokumentation wie andere Frameworks, aber die Dokumentation ist keineswegs geizig. Alle wichtigen Informationen passen auf eine einzige (wenn auch lange) Webseite. Darüber hinaus finden Sie eine vollständige Dokumentation für jede API, Beispiele für die Bereitstellung auf verschiedenen Infrastrukturen, Erläuterungen zur integrierten Vorlagensprache und eine Sammlung gängiger Rezepte.

Nachteile:

Eine Konsequenz des Minimalismus von Bottle ist, dass einige Funktionen einfach nicht vorhanden sind. Die Formularvalidierung, einschließlich CSRF-Schutz und anderer Funktionen, wird nicht unterstützt. Wenn Sie eine Webanwendung erstellen möchten, die ein hohes Maß an Benutzerinteraktion unterstützt, müssen Sie diese selbst hinzufügen.

Weitere technische Artikel zum Thema Python finden Sie in der Spalte Python-Tutorial, um mehr darüber zu erfahren!

Das obige ist der detaillierte Inhalt vonWelche Frameworks sind in Python verfügbar?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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