Django的URL,如何将根映射到应用程序?

我对django相当陌生,但在Python和java web编程方面经历了不同的框架。 我已经使自己一个很好的小Django应用程序,但我似乎不能使它匹配www.mysite.com而不是www.mysite.com/myapp。

我已经在我的urls.conf中定义了urls和views,而这些urls.conf目前还没有与app分离(不介意)。

urlpatterns = patterns('myapp.views', (r'^myapp/$', 'index'), (r'^myapp/(?P<some_id>\d+)/global_stats/$', 'global_stats'), (r'^myapp/(?P<some_id>\d+)/player/(?P<player_id>\d+)/$', 'player_stats'), ) 

所有这一切都像一个魅力。 如果有人去www.mysite.com/myapp他们会打我的索引视图,导致httpredirect到我的“正确的”默认url。

那么,如何添加一个与(r'^ myapp / $','index')相同但没有/ myapp的模式?也就是说,www.mysite.com应该足够了吗?

我会认为这将是非常基本的东西…我试着添加一行:

 (r'^$', 'index'), 

然而,这引起了我的循环…

希望你django大师在那里可以为我澄清这一点!

这听起来很奇怪。

你最近的尝试应该可行,但是我通常做的 – 放

 urlpatterns = patterns('', (r'^$', lambda r: HttpResponseRedirect('myapp/')), ... ) 

当你开始添加新的应用程序时,这个比例会更好。

我知道这个问题是在2年前问的,但是我遇到了同样的问题,并find了解决办法:

在项目urls.py

 urlpatterns = patterns('', url(r'^', include('my_app.urls')), #NOTE: without $ ) 

my_app.urls.py

 urlpatterns = patterns('', url(r'^$', 'my_app.views.home', name='home'), url(r'^v1/$', 'my_app.views.v1', name='name_1'), url(r'^v2/$', 'my_app.views.v2', name='name_2'), url(r'^v3/$', 'my_app.views.v3', name='name_3'), ) 

只要把一个空的原始正则expression式:r''

我在这里testing,它完美的工作。

 urlpatterns = patterns('', url(r'', include('homepage.urls')), url(r'^homepage/', include('homepage.urls')), url(r'^admin/', include(admin.site.urls)), ) 

希望它有帮助!