我有一个名为'myapp'的Django应用程序和我的url.py在“myapp”目录中的索引页面:
url(r'^$', views.index, name='index')
因此,这实际上使测试服务器http://127.0.0.1:8000/myapp/
但是,我不想要这个。我希望每个网址只能在http://127.0.0.1:8000/
开始,因此目前只能在测试服务器上的http://127.0.0.1:8000/myapp/bigduck
访问该网页,我希望只能在http://127.0.0.1:8000/bigduck/
基本上,我想从此应用的网址映射方案中删除应用名称。
我该怎么做?提前致谢。
答案 0 :(得分:4)
您应该查看项目的主urls.py
文件(例如,settings.ROOT_URLCONF
指向的文件,而不是单个应用内的文件)
在该主urls.py
中,您会看到一个条目,其中将myapp
的网址映射到网址路径myapp/
。
您可以使用以下内容替换它:
url(r'^$', 'myapp.urls')
这会将myapp
下的所有网址放在顶级路径上,因此您不需要使用myapp/
您还可以在主bigduck
中映射urls.py
,例如
bigduck/ -> myapp.bigduck
register/ -> register
但我在评论中的意思是,网址的正则表达式在urls.py
文件中的显示顺序非常重要,因为Django会在第一场比赛时停止,这就是为什么所有的网址都是映射到myapp
在这里查看数字3 https://docs.djangoproject.com/en/dev/topics/http/urls/#how-django-processes-a-request
答案 1 :(得分:0)
更新2019 / django> = 2.0
编辑主urls.py
-与settings.py
文件位于同一目录中的主文件。
urlpatterns = [
# updated so we don't need the myapp prefix
# path('myapp/', include('myapp.urls')), # old version
path('', include('myapp.urls')),
path('admin/', admin.site.urls),
]