Sind Flask und Bottle scalable? (German)
Tags: python, webdev, german, deutsch
Published: 2019-11-05 10:10:15

Ein gutes Framework ist der Traum eines jeden Entwicklers. Es hilft bei der Automatisierung der Implementierung gemeinsamer Lösungen und verkürzt gleichzeitig die Entwicklungszeit, so dass sich Entwickler mehr auf die Arbeit an der Anwendungslogik als auf Routine und andere unnötige Elemente konzentrieren können.

Ein gutes <a href="https://python.org">Python</a> Framework ist nicht anders. Je nach Größe und Komplexität des Projekts kann die Wahl des richtigen <a href="https://pythonspot.com/python-web-development/">Web-Frameworks für Python</a> helfen, den größten Teil des damit verbundenen Stresses zu beseitigen. Wenn Sie an einem großen System arbeiten, das viele Anforderungen und Funktionen hat, dann müssen Sie möglicherweise ein vollwertiges Web-Framework erwerben.

Wenn Sie jedoch an einem einfacheren und kleineren Projekt arbeiten, dann ist die Verwendung eines Mikro-Frameworks angebracht. Beachten Sie, dass dies nicht bedeutet, dass ein Web-Framework besser ist als das andere, aber sie sind vom Design her einzigartig und für verschiedene Zwecke nützlich.

## Frameworks

<img src="https://cdn.pixabay.com/photo/2017/09/29/10/06/painter-2798557__340.jpg" alt="framework">

Es gibt viele Arten von Python-Framework, die je nach Projekttyp verwendet werden können. Einige von ihnen beinhalten: Django, Flask, Pyramide, Web2py, Bottle, CherryPy. In diesem Artikel werden wir uns mehr auf zwei dieser Web-Frameworks konzentrieren: <a href='https://flask.palletsprojects.com/en/1.1.x/'>Flask</a> und <a href="https://bottlepy.org/docs/dev/">Bottle</a> ist ein Mikroframework, um zu prüfen, ob sie für den Einsatz skalierbar sind. 

<a href="https://pythonbasics.org/flask-tutorial-hello-world/">Flask ist ein Python Web-Framework</a>, das vom Sinatra Rubin-Framework inspiriert wurde und unter der BSD-Lizenz verfügbar ist, während <a href="https://bottlepy.org/docs/dev/tutorial.html#quickstart-hello-world">Bottle ein Microframework</a> ist, das hilft, alles in einer einzigen Quelldatei zu implementieren.

Für Webanwendungen bedeutet Skalierbarkeit zwei Dinge:
* Die Fähigkeit der Anwendung, auf alle Anfragen zu reagieren, auch wenn sie sehr beliebt wird und die Anzahl der Benutzer und Anfragen exponentiell steigt (um den Faktor 10^x).
* Die Fähigkeit des Web-Frameworks, mehr Funktionen (so viele wie möglich) zu akzeptieren, wenn Sie neue entwickeln. Wenn der Code durch die Hinzufügung eines Features beeinflusst wird, ist er nicht skalierbar.

Nun, da wir verstehen, was Skalierbarkeit in diesem Zusammenhang bedeutet, lassen Sie uns sehen, wie sich beide Frameworks als Reaktion auf diese beiden Bedeutungen verhalten.

## Skalierung der App, um mehr Benutzer/Anfragen zu bearbeiten.

<img src="https://cdn.pixabay.com/photo/2016/08/15/08/35/woman-1594711__340.jpg" alt="users">

Es spielt keine Rolle, ob es sich um eine Flask oder eine Bottle handelt, was Sie in diesem Fall tun müssen, ist nicht Ihre Anwendung neu zu programmieren, um mit mehr Benutzern oder Anfragen umgehen zu können, sondern andere Dinge rund um die Anwendung neu zu programmieren. 

Sie können <a href="https://en.wikipedia.org/wiki/FastCGI">FastCGI</a> verwenden, um Ihrer Anwendung zu helfen, so viele Instanzen wie möglich oder erforderlich zu starten, damit sie mehr Anfragen bearbeiten kann.

## Skalierung der App, um mehr Funktionen zu akzeptieren. 

Flask wird mit einigen wunderbaren Werkzeugen geliefert, um die Skalierung zu erleichtern. Es gibt ein Tool namens <a href="https://flask.palletsprojects.com/en/1.1.x/blueprints/">Blueprints in Flask</a>, das Ihnen hilft, Ihren Code zu modularisieren, so dass Sie ihn in weitgehend unabhängige Chunks einfügen können, wenn Ihre Codebasis wächst und Sie weitere Codezeilen hinzufügen müssen. Dieses Tool bietet Ihnen auch die Möglichkeit, Ihre App für viele Kunden mit White-Labeling zu versehen und anzupassen.

Bottle kommt auch mit vielen Tools, die ihm helfen können, mehr Funktionen zu akzeptieren, so dass Ihr vorhandener Code durch das Hinzufügen dieser Funktionen nicht beeinträchtigt wird. 

**Mehr liesen:**
* <a href="https://pythonbasics.org/flask-tutorial-hello-world/">Flask hello world tutorial</a>
* <a href="https://flask.palletsprojects.com/en/1.1.x/">Flask Python Micro Framework</a>
* <a href="https://bottlepy.org/docs/dev/">Bottle: Python Web Framework</a>