0

ローカルの Windows 7 マシンで Bitnami DjangoStack (django、apache、および mySQL を含む) を使用して django Web サイトを構築中です。

プロジェクトは「MyProject」と呼ばれます。現時点で、私の URL は次のようになります: localhost/MyProject/ localhost/MyProject/login/ localhost/MyProject/admin/ など。私が見てきたチュートリアルは、私がすべきことを示しています)私は「localhost/login」に行き着きますが、これは機能しません。

完成したプロジェクトを「http://www.MyProject.com」に置き、www.MyProject.com/login のようなページを作成したいのですが、設定したように見える方法では「www.SomeDomain」になってしまいます.com/MyProject/login". HttpResponseRedirect('/MyProject/login/') は私がやりたいことに対して有効ですか、または settings.py を別のものに設定する必要がありますか? どうもありがとう。

4

1 に答える 1

3

まず第一に、Django コード (テンプレートでもビューでもない) で URL 文字列をハードコーディングするべきではなく、Django URL Dispatcherを使用する必要があります。

urls.py

urlpatterns = patterns('',
    #...
    url(r'^articles/(\d{4})/$', 'news.views.year_archive'),
    #...
)

ビュー.py

return HttpResponseRedirect(reverse('news.views.year_archive', args=(year,)))

あなたの問題に対処するために、メインの urls.py は次のように他のプロジェクトの URL をラップできます。これにより、含まれているすべてのプロジェクトの URL の前に SITE_BASE_URL が追加されます。

SITE_BASE_URL = '/MyProject/' 
urlpatterns = patterns('',
    # ... snip ...
    url(r'{site_base}'.format(site_base=SITE_BASE_URL), include('project.urls')),
    # ... snip ...
)

これで、「SITE_BASE_URL」を環境固有にすることができます。設定ファイルを使用するか (本番環境またはローカル環境で異なるままにすることができます)、Apache 自体から環境変数として渡すことができます。参照: http://drumcoder.co.uk/blog/2010/nov/12/apache-environment-変数と mod_wsgi/ .

于 2013-09-10T14:07:42.640 に答える