【问题标题】:Cannot GET data via Django + ReactJS framework无法通过 Django + ReactJS 框架获取数据
【发布时间】:2018-08-04 17:39:15
【问题描述】:

我正在学习 Django + ReactJS,但我无法从我的 Django 模型中获取数据。

我在本教程中一步一步地学习:http://geezhawk.github.io/using-react-with-django-rest-framework

但是,当我在 Firefox 中检查控制台时,我收到“请求失败,状态码为 500”消息。 Django+React 集成工作正常,但由于某种原因它不会获取数据。有什么想法吗?

网站中的代码如下:

型号:

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=200, unique=True)
    author = models.CharField(max_length=100)

序列化器:

from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):

    class Meta:
        model = Book
        fields = ('title', 'author')

views.py

from rest_framework import generics
from .models import Book
from .serializers import BookSerializer

class BookList(generics.ListCreateAPIView):

    queryset = Book.objects.all()
    serializer_class = BookSerializer

index.html

{% load render_bundle from webpack_loader %}
<!DOCTYPE html>
<html>
    <head>
        <title>Hello React</title>
    </head>
    <body>
        <div id="container"></div>
        {% render_bundle 'main' %}
    </body>
</html>

index.js

var React = require('react')
var ReactDOM = require('react-dom')

var BooksList = React.createClass({
    loadBooksFromServer: function(){
        axios.get(this.props.url)
        .then(function (data) {
            this.setState({data: data});
            }.bind(this)
        )
        .catch(function (error) {
            console.log(error);
        });
    },

    getInitialState: function() {
        return {data: []};
    },

    componentDidMount: function() {
        this.loadBooksFromServer();
        setInterval(this.loadBooksFromServer, 
                    this.props.pollInterval)
    }, 
    render: function() {
        if (this.state.data) {
            console.log('DATA!')
            var bookNodes = this.state.data.map(function(book){
                return <li> {book.title} </li>
            })
        }
        return (
            <div>
                <h1>Hello React!</h1>
                <ul>
                    {bookNodes}
                </ul>
            </div>
        )
    }
})

ReactDOM.render(<BooksList url='/api/' pollInterval={1000} />, 
    document.getElementById('container'))

【问题讨论】:

    标签: django reactjs django-rest-framework


    【解决方案1】:

    @somethingstrag 我建议你在实际使用之前在 postman 中测试你的 API。你能告诉我你是如何注册网址的吗?

    this.props.url
    

    请发布您遇到的错误。错误代码 500 表示内部服务器错误。

    【讨论】:

      猜你喜欢
      • 2017-04-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-14
      相关资源
      最近更新 更多