【问题标题】:Django & React: Connecting multiple apps from one templateDjango & React:从一个模板连接多个应用程序
【发布时间】:2022-01-06 03:15:35
【问题描述】:

早上好,

我想问一下,是否可以在 django 中连接多个应用程序,每个应用程序都使用自己的 react 前端?例如:我有一个主页,其中包含指向不同应用程序的所有链接...

文件夹结构:

|- project
|    |- app_main
|    |    |- templates
|    |    |   |- app_main
|    |    |   |   |- main.html
|    |- app_1
|    |    |- frontend_1 (react)
|    |    |   |- public
|    |    |   |    |- index.html
|    |- app_2
|    |    |- frontend_2 (react)
|    |    |   |- public
|    |    |   |   |- index.html

据我了解 - 或者至少我是这么认为的 - 保存 html 文件的文件夹必须包含在 settings.pytemplate 中...

settings.py

REACT_ROUTE_APP_1 = os.path.join(BASE_DIR, 'app_1', 'frontend_1', 'public')
REACT_ROUTE_APP_2 = os.path.join(BASE_DIR, 'app_2', 'frontend_2', 'public')

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [
            REACT_ROUTE_APP_1,
            REACT_ROUTE_APP_2
        ],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]

这是正确的方法还是有更好的解决方案?如果这是正确的选择,我该如何连接我的 url-route ?

ma​​in.html

<div>
    <a href="?">Link to App 1</a>
    <a href="?">Link to App 2</a>
</div>

虽然我认为 Django 和 React 会是一个流行的组合,但我只找到了几篇相关文章!

感谢您的帮助和建议,祝您度过愉快的一周!

【问题讨论】:

    标签: reactjs django react-router


    【解决方案1】:

    您的文件夹结构很好,您应该使用 URL 路由器从主应用程序重定向到其他应用程序

    主 urls.py

    urlpatterns = [
        path("", include('main.urls')), 
        path("app_1/", include('app_1.urls')), 
        path("app_2", include('app_2.urls')), 
    
    ]
    
    

    在你的 app_1 urls.py 中:

    urlpatterns = [
       path('',(TemplateView.as_view(
          template_name="app_1/index.html",
      )), name='index.html'),
    ]
    
    

    html

    
    <div>
        #URI + "app_1"
        <a href="app_1">Link to App 1</a>
    </div>
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-24
      • 2018-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多