2017-02-02 54 views
-1

一直在阅读并关注将ReactJS集成到Django项目中的情况。我通过Django REST框架以JSON的形式获取从Django流出的数据的基本概念。Django表单和身份验证与前端框架(AngularJS/ReactJS)

虽然教程似乎结束了,但数据是如何流向相反方向的,以及Django如何发挥作用?我认为输入元素被重新渲染回JSON,然后以PUT,PATCH,POST等形式通过Django REST框架发回,以更新模型。

但是,当涉及到使用用户输入对Django内置的auth视图时,我有点失落。有没有人有这方面的经验,关心解释?

+0

您能否澄清一下您的项目布局。例如,您是否使用Django创建REST API并从React项目调用该API? – Turtle

+0

是的,这是正确的。使用ReactJS作为前端,所以我的理解是我必须使用Django REST Framework创建一个API,然后让ReactJS为前端渲染JSON。我还没有那么远,但它让我想知道前端的交互如何传递回Django。 – sockpuppet

+0

你可以通过类似'fetch'的方式来调用你的Django API。您根本不会使用Django表单 – Turtle

回答

0

首先你必须用Django-Rest-Framework开发API。

下面是小例子,如何在ReactJs

发送和接收数据

数据提交API:

onSubmit(){ 
    fetch('https://djangoRest.com/endpoint/', { 
    method: 'POST', 
    headers: { 
    'Accept': 'application/json', 
    'Content-Type': 'application/json', 
    }, 
    body: JSON.stringify({ 
    firstParam: 'yourValue', 
    secondParam: 'yourOtherValue', 
    }) 
    }) 
} 

ReactJs获取从API数据

loadData() {  
    fetch('https://djangoRest.com/endpoint/', { 
      method: 'GET', 
      headers: { 
       'Accept': 'application/json', 
       'Content-Type': 'application/json', 
      } 
      }) 
      .then((response) => response.json()) 
      .then((responseJson) => { 
      if (responseJson.data) { 
       this.setState({ Data: responseJson.data }); 
      } 
      if (responseJson.errors) { 
       console.log('errors', responseJson.errors) 
      } 
      }) 
    } 

编号: https://facebook.github.io/react-native/docs/network.html