10 Python-Webframeworks, mit denen es sich zu arbeiten lohnt, 2018

Bild

Von einem Übersetzer: Heute bieten wir Ihnen eine Übersetzung eines Artikels an, der von Hackernoon auf SteelKiwi veröffentlicht wurde. Sie beschäftigt sich mit der Entwicklung von b2b- und b2c-Softwarelösungen und teilt die Erfahrungen, die sie bei der Arbeit mit Lesern ihres Blogs gesammelt hat.

Frameworks erleichtern dem Entwickler das Leben, indem sie verschiedene Lösungen für die Entwicklung von Anwendungen und Diensten anbieten. Sie automatisieren die Implementierung von Standardlösungen und sparen Zeit. Daher konzentriert sich der Entwickler auf die Anwendung und nicht auf Routineaufgaben, bei denen kein kreatives Denken erforderlich ist.

Skillbox empfiehlt: Der Python-Entwickler von Grund auf zum Anfassen .
Wir erinnern Sie daran: Für alle Leser von „Habr“ - ein Rabatt von 10.000 Rubel bei der Anmeldung für einen Skillbox-Kurs mit dem Promo-Code „Habr“.

In diesem Artikel werden zehn Python-Frameworks beschrieben, die sowohl für Anfänger als auch für Profis nützlich sind. Im Jahr 2018 wurden die alten Frameworks aktualisiert, neue Tools erschienen, die es wert sind, beachtet zu werden.

Bevor Sie beginnen ...


Wenn Sie sich für ein Framework entscheiden, schätzen Sie die Größe und Komplexität Ihres Projekts. Wenn Sie ein großes System mit einer angemessenen Anzahl von Funktionen entwickeln, ist das Full-Stack-Framework genau das Richtige für Sie. Wenn Sie eine relativ kleine Anwendung oder einen relativ kleinen Dienst erstellen, sollten Sie auf Mikroframes achten.

Informationen zu einigen Frameworks finden Sie auf den Wikipedia-Seiten . Die endgültige Entscheidung müssen Sie jedoch auf der Grundlage der oben bereits genannten Prinzipien der Analyse Ihres eigenen Dienstes oder Ihrer eigenen Anwendung treffen.

Full-Stack-Frameworks


Django



Django ist ein kostenloses Open-Source-Full-Stack-Framework. Sie können die meisten Standardfunktionen in einem einzigen Paket hinzufügen, anstatt nach einzelnen Bibliotheken zu suchen.

Unter diesen sind solche wie Authentifizierung, URL-Routing, Datenschema-Migration usw. beliebt.

Django verwendet ORM, um Objekte Datenbanktabellen zuzuordnen. Der gleiche Code funktioniert mit verschiedenen Datenbanken, sodass das Wechseln von einer Datenbank zu einer anderen zu einer einfachen Aufgabe wird. Die Hauptdatenbanken, mit denen Django arbeitet, sind PostgreSQL, MySQL, SQLite und Oracle. Sie können weitere hinzufügen, dafür benötigen Sie jedoch Lösungen von Drittanbietern.

Pyramide



Pyramid ist ein Open-Source-Framework, das dem Entwickler maximale Möglichkeiten bei minimalem Zeit- und Ressourcenaufwand bietet.

Das interessanteste Merkmal des Frameworks ist die Arbeit mit großen und kleinen Anwendungen. Unabhängig davon lohnt es sich, Pyramidenfunktionen hervorzuheben wie:


Turboears



TurboGears ist ein Open-Source-Full-Stack-Framework für Webanwendungen. Damit kann der Entwickler schnell erweiterbare datengesteuerte Webanwendungen erstellen. TurboGears wird mit praktischen Vorlagen und einem leistungsstarken und flexiblen ORM geliefert.

Die wichtigsten Funktionen des Frameworks:

  • Unterstützung für verschiedene Datenbanken;
  • Unterstützung für SQLObject und SQLAlchemy ;
  • Validierung für FormEncode ;
  • Pylone als Webserver;
  • Befehlszeilen-Tools.

Web2py



Und dies ist ein skalierbares Open-Source-Full-Stack-Framework für Python. Bevor Sie jedoch damit arbeiten, sollten Sie bedenken, dass es nicht mit Python 3 kompatibel ist.

Web2py verfügt jedoch über eine eigene IDE, die über einen Code-Editor, einen Debugger und eine Ein-Klick-Bereitstellung verfügt. Neben anderen Funktionen und Werkzeugen ist Folgendes hervorzuheben:

  • mangelnde Notwendigkeit für Installation und Konfiguration;
  • Arbeiten Sie unter Windows, Mac, Google App Engine, Amazon EC2 und auf jedem Hosting, das Python 2.5–2.7 oder Java + Python unterstützt.
  • mit verschiedenen Protokollen arbeiten;
  • hohes Maß an Datensicherheit;
  • Fehler-Tracker;
  • Abwärtskompatibilität, mit der Sie problemlos mit Anwendungen und Diensten arbeiten können, die auf früheren Versionen des Frameworks basieren.

Mikroframes


Flasche



Dies ist ein Mikroframework, das unter dem BSD lizenziert ist. Die Entwickler wurden vom Sinatra Ruby-Framework inspiriert. Dies hängt vom Werkzeug WSGI- Toolkit und der Jinja2- Vorlage ab.

Der Kolben ist modular aufgebaut und kann für viele Aufgaben angepasst werden. Der Entwickler erhält sofort die folgenden Funktionen:

  • eingebauter Server und Debugger;
  • Jinja2-Vorlagen
  • Unterstützung für sichere Cookies;
  • WSGI 1.0;
  • Unicode
  • die Fähigkeit, eine Verbindung zu einem beliebigen ORM herzustellen.

Es wurde ein Framework erstellt, um Webanwendungsentwickler zu unterstützen, die die Möglichkeit hatten, Erweiterungen nach ihren Wünschen auszuwählen.

Flasche



Ein weiteres Mikroframework, das ursprünglich zum Erstellen einer API gedacht war. Die Flasche zeichnet sich durch das Vorhandensein einer einzelnen Quelldatei aus. Die Arbeit mit ihm erfordert kein "Tanzen mit einem Tamburin".

Zu den Standardfunktionen gehören Routing, Vorlagen, Dienstprogramme und grundlegende WSGI-Abstraktion:

  • Das Routing unterstützt Anforderungen zum Anzeigen von Funktionsaufrufen, sodass Sie saubere und dynamische URLs erhalten.
  • Vorlagen - viele nützliche Tools, die sofort einsatzbereit sind und Mako, Jinja2 und Cheetah vollständig unterstützen.
  • Dienstprogramme - bequemer Zugriff auf Daten, Herunterladen von Dateien, Cookies, Headern und anderen Metadaten im Zusammenhang mit HTTP.
  • Eingebauter HTTP-Entwicklungsserver, der die Funktionen fapws3, bjoern, GAE, CherryPy und jeden anderen HTTP-Server mit WSGI unterstützt.

Dies ist eine großartige Lösung für das Prototyping, das Studium der Struktur von Webframeworks und das Erstellen kleiner Anwendungen.

Cherrypy



CherryPy ist ein minimalistisches Open Source-Webframework. Es bietet die Möglichkeit, Python-Webanwendungen zu erstellen, die sich nicht vom Erstellen eines anderen objektorientierten Programms unterscheiden.

Tatsächlich ist diese CherryPy-basierte Webanwendung eine eigenständige Python-Anwendung, die einen eigenen Multithread-Webserver verwendet. CherryPy-Anwendungen können auf jedem Betriebssystem ausgeführt werden, das Python unterstützt (Windows, MacOS, Linux usw.). Sie können in jeder Umgebung bereitgestellt werden, in der Sie eine reguläre Python-Anwendung ausführen können. Sie benötigen Apache nicht für CherryPy-Anwendungen. Sie können die CherryPy-Anwendung in Apache ausführen, genau wie in Lighttpd oder IIS.

Mit CherryPy können Sie jede Art von Technologie für Muster, Datenzugriff usw. verwenden. Es kann auch Artikel, Statiken, Cookies, Upload-Dateien und alles andere verarbeiten, was andere Frameworks tun können.

Seine besonderen Fähigkeiten:

  • Einfacher Start mehrerer HTTP-Server gleichzeitig;
  • leistungsstarkes Konfigurationssystem;
  • flexibles Plugin-System;
  • "Out of the Box" -Funktionen: Caching, Decodierung, Sitzungen, Authentifizierung, statischer Inhalt usw.;
  • Fähigkeit, unter Python 2.7+, Python 3.1+, PyPy, Jython und Android zu arbeiten.

Asynchrone Frameworks


Sanic

Sanic ist ein Python-Framework, das auf uvloop basiert und zur schnellen Verarbeitung von HTTP-Anforderungen entwickelt wurde.

Es funktioniert unter Python 3.5+. Sanic unterstützt asynchrone Anforderungshandler und ist damit mit den asynchronen / wartungsfunktionen von Python 3.5 kompatibel. Dies erhöht die Arbeitsgeschwindigkeit erheblich.

Im Benchmark zeigte Sanic bei der Verarbeitung von 100 Verbindungen die Fähigkeit, 33.342 Anfragen pro Sekunde zu verarbeiten.

Tornado



Tornado ist ein Python-Webframework und gleichzeitig eine asynchrone Netzwerkbibliothek. Es verwendet nicht blockierende Netzwerk-E / A und löst das C10k-Problem (was bedeutet, dass bei korrekter Konfiguration mehr als 10.000 gleichzeitige Verbindungen verarbeitet werden können).

All dies macht es zu einem hervorragenden Werkzeug zum Erstellen von Anwendungen, die eine hohe Leistung erfordern und gleichzeitig mit Zehntausenden von Benutzern arbeiten.

Hauptvorteile:

  • Integrierte Unterstützung für die Benutzerauthentifizierung
  • Echtzeitdienste;
  • hohe Leistung;
  • Python-Webvorlagensprache
  • Nicht blockierender HTTP-Client
  • Implementierung von Authentifizierungs- und Autorisierungsschemata von Drittanbietern (Google OpenID / OAuth, Facebook-Login, Yahoo BBAuth, FriendFeed OpenID / OAuth, Twitter OAuth);
  • Unterstützung für Übersetzungen und Lokalisierungen.

Bonus


Dash



Dash ist ein Open-Source-Python-Framework, mit dem analytische Webanwendungen erstellt werden. Es ist besonders gut für Big-Data-Profis geeignet, die mit der Webentwicklung nicht sehr vertraut sind.

Dash-Anwendungen sind Webserver, auf denen Flask ausgeführt wird und Daten über HTTP mit JSON-Paketen ausgetauscht werden. Ihre Schnittstelle bietet Komponenten die Funktionen von React.js.

Mit Dash entwickelte Anwendungen werden in einem Webbrowser angezeigt und können auf Servern bereitgestellt werden. Dash-Anwendungen sind von Natur aus plattformübergreifend.

Zusammenfassend können wir sagen, dass es wirklich viele Frameworks für Entwickler gibt. Jeder von ihnen bietet seine eigenen einzigartigen Möglichkeiten. Die Wahl des Frameworks ist jedoch eine wichtige Entscheidung für die Zukunft Ihres eigenen Projekts, und Sie sollten sich nicht darauf stürzen.

Skillbox empfiehlt:

Source: https://habr.com/ru/post/de420119/


All Articles