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)), )
希望它有帮助!