私は Django に比較的慣れておらず、Rails の経験があります。Rails では、 の規則により、通常、ルート (Django のurls.py
) をあまり調整する必要はありません。そこで、新しいビューを追加するたびに書き直す必要がないように、自分のプロジェクトに Rails の動作の一部を「インポート」することを考えました。REST
/controller/action/index
urls.py
これは私のメインurls.py
ファイルです
from django.conf.urls import patterns, include, url
from django.views.generic.simple import redirect_to
urlpatterns = patterns('',
url(r'^$', redirect_to, {'url': '/monitor/'}),
url(r'^monitor/', include('monitor.urls')),
)
でmonitor/urls.py
、私は持っています
from django.conf.urls import patterns, include, url
urlpatterns = patterns('monitor.views',
(r'^$', 'dispatcher'),
(r'^(?P<action>\w+)/(?P<id>.*$)', 'dispatcher'),
)
そして、私のmonitors.views.dispatcher
機能は次のようになります
def dispatcher(request, action=None, id=None):
if action == None:
action = "index"
try:
act_func = globals()[action]
except KeyError, e:
return HttpResponseNotFound("No %s action defined. Page not found." % (action))
return act_func(request, id)
私はかなりの数の問題を抱えていましたredirect
( django.shortcuts.redirect の理解を参照) が、これらの問題の場合、これが原因ではないようです。とにかく考えさせられましたが、今ではディスパッチャーが最初から良いアイデアであったかどうかはよくわかりません。
また、同僚の一人と、それがあまり好きではないことについて話し合った. 彼は、私が潜在的なセキュリティ リスクをもたらしたと感じたと言いました。誰かがコードの構造を知っていれば、それを悪用できます。彼の主張は私には有効に思えますが、私たちの環境では、(私たち以外の) 誰かが私たちのコードを読む可能性はほとんどありません。
とにかく、Python と Django の経験が豊富な人がそれについてどう思うか知りたいです。