フラスコアプリをロードする前に、wsgiリクエストからいくつかの値を読み取る必要があります。wsgiリクエストからURLを読み取ると、フラスコアプリが読み込まれると(ミドルウェアの実行後)、問題なくファイルにアクセスできます。
しかし、パラメータにアクセスしようとすると、フラスコアプリが読み込まれると投稿データが削除されるようです。この「一度だけ読む」問題を防ぐために、wsgiリクエストを特別なWebobリクエストでラップするという極端なこともしました。
ミドルウェアでwsgiリクエストの値にアクセスする方法を知っている人はいますか?リクエストに副作用を与えることなく、フラスコアプリで投稿データ/ファイルデータを取得できますか?
from webob import Request
class SomeMiddleware(object):
def __init__(self, environ):
self.request = Request(environ)
self.orig_environ = environ
def apply_middleware(self):
print self.request.url #will not do any harm
print self.request.params #will cause me to lose data
これが私のフラスコビューです
@app.route('/')
def hello_world():
from flask import request
the_file = request.files['file']
print "and the file is", the_file