第一种方法是构建单独的Django和React应用程序。Django将负责提供使用Django REST框架构建的API,React将使用Axios客户端或浏览器的访存API来使用这些API。您将需要拥有两台处于开发和生产中的服务器,一台用于Django(REST API),另一台用于React(以提供静态文件)。
第二种方法是将前端和后端应用程序耦合在一起。基本上,您将使用Django来服务React前端并公开REST API。因此,您需要将React和Webpack与Django集成,这些是您可以遵循的步骤
首先生成您的Django项目,然后在该项目目录中使用React CLI生成您的React应用程序
对于Django项目,请使用pip 安装 django-webpack-loader:
pip install django-webpack-loader
接下来,将应用程序添加到已安装的应用程序中,并settings.py
通过添加以下对象对其进行配置
WEBPACK_LOADER = {
'DEFAULT': {
'BUNDLE_DIR_NAME': '',
'STATS_FILE': os.path.join(BASE_DIR, 'webpack-stats.json'),
}
}
然后添加一个Django模板,该模板将用于安装React应用程序,并将由Django提供服务
{ % load render_bundle from webpack_loader % }
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width" />
<title>Django + React </title>
</head>
<body>
<div id="root">
This is where React will be mounted
</div>
{ % render_bundle 'main' % }
</body>
</html>
然后在其中添加网址urls.py
以提供此模板
from django.conf.urls import url
from django.contrib import admin
from django.views.generic import TemplateView
urlpatterns = [
url(r'^', TemplateView.as_view(template_name="main.html")),
]
如果此时同时启动Django服务器和React服务器,则会收到Django错误消息,提示webpack-stats.json
不存在。因此,接下来您需要使您的React应用程序能够生成统计文件。
继续浏览您的React应用程序,然后安装 webpack-bundle-tracker
npm install webpack-bundle-tracker --save
然后弹出您的Webpack配置并转到config/webpack.config.dev.js
然后添加
var BundleTracker = require('webpack-bundle-tracker');
//...
module.exports = {
plugins: [
new BundleTracker({path: "../", filename: 'webpack-stats.json'}),
]
}
将此BundleTracker插件添加到Webpack,并指示其webpack-stats.json
在父文件夹中生成。
确保在config/webpack.config.prod.js
生产中也做同样的事情。
现在,如果您重新运行React服务器,webpack-stats.json
它将生成生成,并且Django将能够使用它来查找有关React开发服务器生成的Webpack捆绑包的信息。
还有其他一些事情。您可以从本教程中找到更多信息。