如何配置Django URLS以与所有react-router路径一起使用

时间:2019-12-25 18:34:51

标签: javascript python django reactjs react-router-dom

我正在尝试将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();

0 个答案:

没有答案