2009-07-22 1 views
3

DjangoとPylonsはミドルウェアの仕組みに関する考え方が異なります。私はPylonsが標準化されたPEP 333に従うのが好きですが、Djangoはより普及しているようです。両方で使用するミドルウェアを書くことは可能ですか?DjangoとPylonsの両方のためのミドル

上記ミドルウェアに関連するプロジェクトでは、ESAPIというセキュリティツールキットをJavaからPythonに移植しています。 Javaは標準規格に準拠しているので、フレームワークにとらわれないのはかなり簡単です。 Pythonでは、さまざまなフレームワークがHttpRequestオブジェクトやミドルウェアのような基本的なことをどのようにするのかという考え方が異なるため、これは難しいようです。

新しいユーザーは、複数のハイパーリンクを投稿することはできません。 DjangoとPylonsミドルウェアの情報へのリンクは以下を参照してください。

+0

[Djangoミドルウェア](http://docs.djangoproject.com/en/dev/topics/http/middleware/#topics-http-middleware) [Pylons Middleware](http://pylonshare.com/docs) /en/0.9.7/concepts/#id1) –

答えて

3

標準のWSGIミドルウェアを使用します。 WSGI経由でDjangoをデプロイする場合は、その時点でWSGIミドルウェアを使用することもできます。しかし、現在WSDLミドルウェアはsettings.pyの標準のDjango MIDDLEWARE_CLASSESオプションで使用することはできません。

つまり、現在、Django自体でWSGIミドルウェアを使用できるようにするGoogle Summer of Codeプロジェクトがあります。私はこのプロジェクトの地位を守っていませんが、コードはHttp WSGI improvements branchで入手できます。

0

Pylonsの場合、ミドルウェアという用語はWSGI(PEP 333)ミドルウェアを意味しますが、Djangoはミドルウェアのための独自の内部メカニズムを意味します。

しかし、(mod_pythonやlighttpd + flupの代わりに)apache + mod_wsgiでDjangoを実行する場合、DjangoにWSGIミドルウェアを含めることもできます。これは通常は行われませんが、WSGIミドルウェアで見られる多くの機能が既にDjangoの適切なミドルウェアに組み込まれているためです。

WSGIミドルウェアとDjangoミドルウェアの違いは、2つの間でコードを変換するのに十分簡単なはずです。厳しい問題は、ORMのような外部ライブラリを使用する場合です。

WSGI WikiにはWSGI middlewareの良好なリストがあります。

+0

Danielが私に打ちのめしましたが、彼が正しいことを明確にする必要があります。MIDDLEWARE_CLASSESでWSGIミドルウェアを使用することはできません。 DjangoでWSGIミドルウェアを使用することは、mod_wsgi WSGIScriptAliasスクリプトにそれを追加することです。 –

関連する問題