我是一个Python Django新手,我正在为一个React Django应用程序编写代码。
我的问题是关于Django和React的路由或集成,到目前为止,我已经为Django创建了一个视图,将React应用程序(index.html)发送到客户端,并将其URL设置在主页“www.domain.com/“上。
客户端可以在该URL和应用程序的工作,但有一个问题,客户端只能从主页和其他URL获取应用程序将显示404错误,这意味着客户端必须首先转到主页,然后转到其他页面,这可能会导致一个问题。
例如,如果客户端没有应用程序,然后直接输入一个用于react路由内部的URL,它会显示错误404,所以Django不会发送应用程序,
我是否需要为React应用的每个页面设置视图?因为我不认为它必须是这样的
我知道Django和React路由是分开的,React有自己的路由,因为它是一个单页应用程序(SPA)。
我在GitHub项目中搜索,在Django URL中找到了一个TemplateView,我需要解决这个问题吗?
谢谢。我需要一个好的解决方案或方法。
编辑:
我的应用程序view.py:
from django.shortcuts import render
def home_page(request):
return render(request, 'index.html')
字符串
我的应用程序urls.py
from django.urls import path, include, re_path
from .views import home_page
from django.views.generic import TemplateView
urlpatterns = [
re_path(r'^.*', TemplateView.as_view(template_name='index.html')), # i have find this code in git repos
re_path(r'^.*$', home_page) # @Timi answer
]
型
我的项目文件夹urls.py:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('dashboardapp.urls')),
]
型
1条答案
按热度按时间mccptt671#
如果你想在Django中优雅地处理未知的URL,你可以在你的应用
urls.py
中创建一个catch-all路由来重定向到你的主视图。字符串
这样,当你直接在浏览器中输入一个URL时,Django将提供包含你的React应用的初始HTML,从那里,React接管客户端路由。你不需要在Django中为React应用中的每个页面提供单独的视图。