我正在尝试将Django Python与React Javascript一起使用来创建Web应用程序。最初,我的Django URLS会将我的react-router-dom页面加载为404,但是经过一些研究,我发现我可以使用url(r'^(?:.*)/?$', views.index)
来加载我的所有“第一层”页面。例如:index/settings
。但是此网址映射不适用于我的“第二级”页面。例如:index/settings/about
。我一辈子都无法弄清楚如何加载二级页面,或者重新设计以前的解决方案来解决这个问题。对于如何解决此问题,以及在涉及URLS时,一般而言这些类型的问题,我将不胜感激,因为我是一个相对较新的程序员,并且有很多知识要学习。谢谢!
编辑:r'^(?:.*)/?$'
到目前为止不适用于我的所有URL映射。我相信这是我主要问题的一部分。我还删除了多余的url映射,以保持代码干燥。
urls.py:
from django.contrib import admin
from django.urls import include, path, re_path
from django.conf.urls import include, url
from backend import views
urlpatterns = [
path('admin/', admin.site.urls),
path('api/', include('backend.urls')),
url(r'^(?:.*)/?$', views.index),
]
index.js:
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import LoginIndex from './login_index';
import Settings from './settings';
import About from './about';
import * as serviceWorker from './serviceWorker';
import { Route, Link, BrowserRouter as Router } from 'react-router-dom';
const routing = (
<Router>
<div>
<Route exact path="/" component={App} />
<Route path="/login_index" component={LoginIndex} />
<Route exact path="/settings" component={Settings} />
<Route path="/settings/about" component={About} />
</div>
</Router>
)
ReactDOM.render(routing, document.getElementById('root', 'login_index', 'settings'));
serviceWorker.unregister();