2011-07-12 11 views
0

どのように(もし可能であれば)Djangoで、あるURLを非djangoスクリプトに向けるルートをDjangoに設定できますか?例えば。私は、Djangoのユーザーじゃない(まだ、私は...と思う、それは私にだ)とだけの方法が必要Django - 非djangoスクリプトへのルーティング? (単純なWSGI/CGIアプリケーションなど)

import os 

print 'Status: 200 OK' 
print 'Content-type: text/html' 
print 
for key, value in os.environ.items(): 
    print key, ': ', value, '<br/>' 

:私は/independentは、このいずれかのように非常に単純なCGIスクリプトによって処理されているしたいのですがこの小さな迂回路をアプリケーションにハックします。それは可能ですか?はいの場合、どうですか?

答えて

1

直接ではありません。すべてのDjangoのURLはDjangoビューに移動しなければなりません.Djangoビューは要求を受け入れて応答を返す呼び出し可能なビューです。

任意のURLにリダイレクト[1]を返すことはできますが、だから、あなたが望むことをするための非常に簡単なラッパービューを書くことができるはずです。

あなたがApacheのconfのを変更する権限を持っている場合は、[1] https://docs.djangoproject.com/en/dev/topics/http/shortcuts/#examples

2

を、あなただけのDjangoを扱うビット上記の行を追加することができます。 (あなたはWSGIを経由してあなたのDjangoを実行すると仮定。)鉱山はワルキューレとamjoconnで述べたものと別の可能性は、あなたの.htaccessファイルまたは類似のサーバーのセットアップでそれを処理することです

<Directory "/cgi-bin/"> 
    Options +ExecCGI 
    AddHandler cgi-script .cgi .py 
</Directory> 

ScriptAlias /cgi-bin/ /path/to/cgi/dir/ 

... 

WSGIScriptAlias//path/to/django/site/django.wsgi 

<Directory /path/to/django/site> 
Order deny,allow 
Allow from all 
</Directory> 
1

のようなものです。例えば、私のWebFactionアカウントでは、を除き、/media//downloads/以外のすべてを扱うDjangoがあります。これらの2つのディレクトリは、nginxサーバーによって直接処理されます。

関連する問題