score:0

for dev:
you can run both of them on two different shells. by default, your django rest api will be at 127.0.0.1:8000 and react will at 127.0.0.1:8081. i do not think there will be any issues for the two to communicate via the fetch api. just make sure you have allowed_hosts=['127.0.0.1'] in your django's settings file.

for production:
it will work like any other mobile app or web app does! host your your restful api on an application server (aws, heroku or whatever you choose) and create and host your react app separately. use javascript's fetch api to send requests to your django endpoints and use the json/xml response to render your views in react.

score:1

you should add cors support to django if you developing on separate servers.
here the package for drf it contains instructions how to setup cors properly.
here is what you can do on the production server
in the main urls:

# all your project urls
urlpatterns = [
   ... 
   url(r'^', templateview.as_view(template_name='index.html'), name='index')
]

templateview at the end of urlpatterns will match for all requests which not matched by previous url patters. this view should serve a template with a wepback bundle.
then you do collectstatic and point nginx static to static root as usual.
you could do the same on the develop environment if you want.
and don't forget to change root url for your backend api in react app:

let root = '/api/'
if (process.env.node_env !== 'production') {
    root = 'http://127.0.0.1:8000/api/'
}
...

Related Query

More Query from same tag