如何使用Django应用通过一个请求路由索引?

时间:2018-07-06 14:49:29

标签: python django django-urls

我已经使自己成为一个不错的Django小应用程序,但是最近我了解到当请求索引页,向Django发送2个请求时,我发现问题出在哪里,但我没有任何解决方案。

项目urls.py:

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls', namespace='myapp')),
]

myapp urls.py:

app_name = 'myapp'
urlpatterns = [
    path('', views.index, name='index'),
]

当我请求http://127.0.0.1:8000时,首先Django检查以下行:

path('', include('myapp.urls', namespace='myapp')),

然后在映射myapp网址之后,检查以下行:

path('', views.index, name='index'),

因此2个请求已处理,如控制台中所示:

[06/Jul/2018 14:28:59] "GET / HTTP/1.1" 200 11904
[06/Jul/2018 14:28:59] "GET / HTTP/1.1" 200 11904

如何解决这个问题?有人知道吗?

1 个答案:

答案 0 :(得分:1)

您的项目中的路径是在路由器中设置您的Chain Url树

path('', include('myapp.urls', namespace='myapp')),

告诉“”路径上的每个请求都将由myapp网址处理

同时

path('', views.index, name='index'),

告诉“ /”路径将由索引视图处理

示例:

path('blog', include('blog.urls', namespace='blog')),
path('chat', include('chat.urls', namespace='chat')),

使用该代码,您可以像设置树一样

|_ blog
|_ chat

在您的blog.url

path('post', views.post, name='post'),
path('comment', views.comment, name='comment'),

在您的chat.url中

path('room', views.room, name='room'),
path('message', views.message, name='message'),

会给你这棵树

|_ blog
|____ post
|____ comment
|_ chat
|____ room
|____ message

所以... / blog / post /和/ chat / room /

该设置不会使您的应用程序在相同的url中执行多个请求。

执行 Currl或使用PostMan发送一个请求,以检查您的服务器是否收到1个或多个请求 ...如果仅接收到一个请求,则问题出在模板周围,也许是调用它两次,也许是ajax ...