Flask Limiter – Passen Sie Ratenbeschränkungen für API und Anwendungsnutzung an
Stellen Sie Flask Limiter und relevante Funktionen und Parameter vor. Lernen Sie es und statten Sie Ihre Anwendung mit dem Flaschenbegrenzer aus
Der grundlegende Ansatz der SaaS- oder BaaS- oder API-Monetarisierung besteht darin, Kunden unterschiedliche Dienste und Pläne anzubieten. So können Benutzer das Plankontingent, das sie für ausreichend halten, auswählen und kaufen und zu einem angemessenen Preis bezahlen. Der Kolbenbegrenzer verfügt über vorhandene Module und Parameter für Ihre Anwendung, um diese Funktionen zu übernehmen und zu erstellen. Mit dieser Erweiterung ist es einfach und unkompliziert, Ihr SaaS zu aktualisieren.
In diesem Kapitel werde ich über Flask Limiter und seine relevanten Funktionen und Parameter sprechen. Am Ende dieses Artikels können Sie sich die Fähigkeiten aneignen und damit beginnen, Ihre Anwendung mit den Flask-Ratenlimits auszustatten, die zum Festlegen und Bereitstellen verschiedener Pläne für Käufer verwendet werden.
Inhaltsverzeichnis: Verwenden Sie Flask Limiter, um Ratenbeschränkungen für die Nutzung von Webanwendungen, APIs und SaaS anzupassen
- Was ist Flask Limiter?
- Installation und Modulimport
- Initialisieren Sie den Limiter global
- Dekorateure erklären Ratenbegrenzung
-
Share_limit()
- ausgenommen_wann
- Vollständiges Beispiel eines Python- und Flask-Limiter-Skripts
Was ist Flask Limiter?
Flask Limiter ist ein Flask-Erweiterungspaket, mit dem wir einem Endpunkt problemlos ratenbegrenzende Funktionen hinzufügen können. Neben der Begrenzung der Rate können mithilfe der Konfiguration RATELIMIT_HEADERS_ENABLED
auch Informationen zur Ratenbegrenzung in den HTTP-Header eingefügt werden. Daher müssen wir die HTTP-Header-Informationen nicht selbst codieren. Darüber hinaus unterstützt es auch ein konfigurierbares Backend für die Speicherung mit aktuellen Implementierungen für Redis, In-Memory, Memcached und andere.
Es bietet ratenbegrenzende Funktionen für Flask-Anwendungen. Durch das Hinzufügen der Erweiterung zu Ihrer Flaschenanwendung können Sie verschiedene Ratenbegrenzungen auf verschiedenen Ebenen und Ebenen konfigurieren. Dabei handelt es sich um Dinge wie anwendungsweit, pro Blueprint, Routen, Ressourcen usw.
Für alle Strecken gilt ein Standardtariflimit von 200 pro Tag und 50 pro Stunde. Wir können sogar mehrere Grenzwerte festlegen, wir müssen sie nur mit einem Trennzeichen abgrenzen. Beispielsweise können wir das Limit auf 100 Anfragen pro Minute und 1000 Anfragen pro Stunde gleichzeitig festlegen.
Installation und Modulimport
Um den Flask-Limiter zu installieren, können wir das Computerterminal öffnen und pip3 install Flask-limiter
eingeben. Die Installation dauert nur 10 Sekunden.
Anschließend müssen wir die Flask-Limiter-Module und -Bibliotheken in Ihr Python-Skript importieren. Nachfolgend sind die beiden Hauptmodule aufgeführt.
Der Limiter ist der Konstruktor und wir können eine globale Limiterebene erstellen, die mit der Flask-App konfiguriert wird. Unterdessen ist get_remote_addresss
der key_func
Wert, um die IP-Adresse des Benutzers zu identifizieren, der die Daten anfordert.
Initialisieren Sie den Limiter global
Durch die Verwendung des Konstruktors – Limiter können wir den Limiter mit der Flask-App konfigurieren. In dieser Konfiguration können die Standardbewertungsgrenzen key_func
festgelegt werden, bei denen es sich um get_remote_address handelt.
Dekoriert, um das Ratenlimit zu deklarieren
Abgesehen von dem in der Konfiguration festgelegten globalen Standardlimit können wir die Bewertungslimits anpassen, indem wir das Decorator-Limit in jeder Flask-Anwendungsroute verwenden.
Beispielsweise gibt es einige Kernparameter, die häufig zur Dekoration der Route verwendet werden. Dies sind der Grenzwert, exempt_when
, key_func/lambda
und error_message
. Nachfolgend finden Sie ein Beispiel für die Verwendung dieser Parameter zum Erstellen eines Dekorators in einer Route
key_func/lambda
, um die eindeutige Kennung für das Ratenlimit zu extrahieren. Der Standardwert ist die Remote-Adresse der Anfrage. Mithilfe der Flask-Anmeldung können wir jedoch Anpassungen vornehmen und für bestimmte aktuelle Benutzer einrichten. Für Einzelheiten zu Benutzerauthentifizierungen würde ich andere Artikel zur Ausarbeitung veröffentlichen.
Share_Limit()
Für Szenarien, in denen ein Ratenlimit von mehreren Routen gemeinsam genutzt werden soll. Zum Beispiel, wenn Sie Routen, die dieselbe Ressource nutzen, mit einer übergeordneten Ratenbegrenzung schützen möchten.
Normalerweise besteht der Ansatz darin, eine Variable zu erstellen, die über den Instanzbegrenzer und die Methode shared_limit verfügt
In der Methode shared_limit können wir den Grenzwert und den Umfang festlegen. Anschließend kann die Variable in den Routen verwendet werden, die sie miteinander teilen sollen.
ausgenommen_wann
Jede Grenze kann ausgenommen werden, wenn die angegebenen Bedingungen erfüllt sind. Diese Bedingungen können angegeben werden, indem beim Definieren des Grenzwerts ein Callable als Argument exempt_when
angegeben wird.
Exempt_when ist sehr hilfreich, da es einige Situationen ausschließen kann, die nicht mit der Benutzeridentität übereinstimmen. Wenn ich beispielsweise ein Prestige-Mitglied bin und eine Seite besuche, kann das Limit für Seitenanfragen von dem anderer Mitglieder abweichen. Der Grenzwert in dieser Route gilt also für andere Mitglieder. Andererseits könnte das Prestige-Mitglied die globale Funktion oder eine andere aus einer benutzerdefinierten Funktion verwenden.
Vollständiges Beispiel eines Python- und Flask-Limiter-Skripts
Wenn Sie sich für das vollständige Python-Skript von Kapitel 56 – Verwenden Sie Flask Limiter zum Anpassen von Ratenbeschränkungen für die Nutzung von Webanwendungen, APIs und SaaS, interessieren, Bitte abonnieren Sie unseren Newsletter , indem Sie die Nachricht „Kapitel 56“ hinzufügen. . Wir senden Ihnen das Skript umgehend in Ihr Postfach.
Ich wünsche Ihnen viel Spaß beim Lesen von Kapitel 56 – Verwenden Sie Flask Limiter, um Ratenbeschränkungen für die Nutzung von Webanwendungen, APIs und SaaS anzupassen. Wenn ja, unterstützen Sie uns bitte, indem Sie eine der unten aufgeführten Maßnahmen ergreifen, da dies unserem Kanal immer weiterhilft.
- Unterstützen Sie den Kanal und spenden Sie über PayPal ( paypal.me/Easy2digital )
- Abonnieren Sie meinen Kanal und aktivieren Sie die Benachrichtigungsglocke des Easy2Digital-Youtube-Kanals .
- Folgen und liken Sie meine Easy2Digital-Facebook-Seite
- Teilen Sie den Artikel in Ihrem sozialen Netzwerk mit dem Hashtag #easy2digital
- Sie melden sich für unseren wöchentlichen Newsletter an, um die neuesten Artikel, Videos und Rabattcodes von Easy2Digital zu erhalten