Python – Flask Cache URL mit Query String als cache_key

Python Micro-Framework Flask
Python Micro-Framework Flask

Wer bei dem Python Microframework Flask die Cache-Funktion für URLs verwendet wird bemerkt haben, dass die Request-Argumente bzw. der Query String per default nicht beachtet wird und so bei verschiedenen Request-Argumenten immer die selbe Seite aus dem Cache ausgeliefert
wird.

Da dies oft nicht gewollt ist, muss eine Möglichkeit gefunden werden den Query String in den Cache_Key einzubeziehen.

Die Cache-Funktion von Flask bietet die Möglichkeit den key_prefix selbst zu definieren. Dass dies auch mit einer anderen Funktion möglich ist, wurde sehr schlau gedacht.

Wir erstellen uns dazu eine eigene Funktion make_cache_key. Dieser übergeben wir die Parameter von dem Seitenaufruf und bekommen einen gehashten Wert aus unseren request.path und den request.args.

Nun passen wir den key_prefix der Cache-Funktion an.

Nun können wir die Seite mehrmals mit verschiedenen Parametern aufrufen (z.B. in der Entwicklungsumgebnung mit cURL).

Ich nutze in meinem Fall Redis als Cache_Tye. Mit der CLI von Redis können wir nun die Einträge überprüfen.

Man sieht nun sehr gut, dass für jeden URL-Aufruf je nach Request-Argument ein eigener Cache-Eintrag erstellt wurde.

Weitere Informationen gibt auf der Projektseite von Flask-Cache.

Email
Facebook
Google+
https://der-linux-admin.de/2016/06/python-flask-cache-url-mit-query-string-als-cache_key/
Twitter

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.