使用React路由器排除Django中的某些路由?

2024-04-24 23:46:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前正在用Django REST后端构建React。我遇到了一个小问题,我不能过去,这与路线有关。在

这是我的urls.py文件。在

urlpatterns = [
    url(r'^api/', include(router.urls)),
    url(r'^admin/', admin.site.urls),
    url(r'^djangojs/', include('djangojs.urls')),
    url(r'^api-auth/', include('rest_framework.urls', namespace='rest_framework')),
    url(r'^$', TemplateView.as_view(template_name='exampleapp/itworks.html')),
    url(r'^(?:.*)/?$', TemplateView.as_view(template_name='exampleapp/itworks.html')),
]

使用这个,它让react路由器在前端完成它的工作。例如,如果我想转到127.0.0.1:8000/mentors,那么它将把我带到为React Router设置的页面。在

但是,由于这个原因,在前端进行API调用也会返回react页面而不是API端点。所以每当我删除上面代码中的最后一行:url(r'^(?:.*)/?$', TemplateView.as_view(template_name='exampleapp/itworks.html')),,它就会成功地获得以JSON格式返回的API。现在的问题是,当我尝试转到链接时,它将返回django404页面,而不是我在React路由器中设置的React页面。在

不管怎样,我能两全其美吗?在


Tags: nameviewapiurlincludehtmlastemplate