Comment ajouter un middleware au framework d'applications Web App Engine?
-
20-08-2019 - |
La solution
C'est simple: vous créez l'application WSGI comme d'habitude, puis vous l'enveloppez dans votre middleware WSGI avant de l'exécuter.
Voir ce code de Bloog pour voir comment le firepython est ajouté en tant que middleware.
Autres conseils
Le framework GAE webapp ne mappe pas un à un vers le framework Django. Il serait difficile de faire ce que vous voulez sans implémenter vous-même une sorte d’adaptateur, je ne connais pas d’adaptateur de gestionnaire tiers pour ce faire.
Cela dit, j'utilise généralement le correctif app-engine pour pouvoir utiliser la dernière version Django 1.0.2 avec AppEngine. Vous pouvez ensuite inclure le middleware Django normalement avec le fichier setup.py. Si vous en aviez besoin, vous pourriez probablement regarder dans l'adaptateur de app-engine-patch pour voir comment ils le font, et commencer avec cela comme un framework.
" Middleware " Tel que compris par Django, il s’agit d’une sorte de processeur de requête / réponse, très différent de ce que WSGI appelle & "middleware &"; Pensez: un middleware de type Django ajoutera un session
attribut permettant de demander à un objet de se baser sur ce que Beaker (middleware WSGI) a placé dans environ['beaker.session']
. L'ajout de middleware WSGI à la pile devrait être simple (vous travaillez déjà au niveau WSGI dans votre main.py
), l'ajout du processeur de requête / réponse dépend de la manière dont la requête et la réponse sont extraites de WSGI.
Comment cela peut être fait en utilisant Werkzeug (qui est un jeu d'outils de base WSGI) est décrite dans Le wiki de Werkzeug et dans l'un de ses modules contrib .