如何集成django rest-framework和angularjs?

时间:2016-05-26 19:18:26

标签: jquery angularjs ajax django django-rest-framework

这可能是一个简单的答案,但我无法在任何地方找到它。我的数据库中有测试数据。如何使用angular来显示我的django restframework api中的数据?换句话说,我将在角度控制器和html文件中放入什么代码?

models.py

from django.contrib.postgres.fields import JSONField
from django.db import models

class UserData(models.Model):
    """
    Requires a user id, email, first and last name.
    """
    user_id = models.CharField(max_length=75)
    email = models.EmailField()
    phone = models.CharField(max_length=10)
    name_first = models.CharField(max_length=100)
    name_last = models.CharField(max_length=100)

serializers.py

from rest_framework import serializers
from check import models as m
from django.contrib.auth.models import User


class TestSerializer(serializers.ModelSerializer):
    class Meta:
        model = m.UserData
        fields = ('user_id', 'email', 'phone', 'name_first', 'name_last')

main urls.py

router = routers.DefaultRouter()
router.register(r'user', json_views.TestViewSet)

    urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url('^api/', include(router.urls, namespace='api')),
    ]

views.py

class TestViewSet(viewsets.ModelViewSet):
    queryset = m.UserData.objects.all()
    serializer_class = serializers.TestSerializer
    permission_classes = (IsOwnerOrReadOnly,)

我假设这是基本的想法,但我不明白如何在api数据和角度显示之间建立连接。

app.js

testApp = angular.module('demoapp', []); 

testApp.config(['$httpProvider', function($httpProvider){
    $httpProvider.defaults.xsrfCookieName = 'csrftoken';
    $httpProvider.defaults.xsrfHeaderName = 'X-CSRFToken';
}]);

<body ng-app="demoapp">
<div ng-controller="testApp">
    <ul>
        <li ng-repeat="user in data">
            [[user.user_id]] <br>
            [[user.email]]<br>
            [[user.phone]]<br>
            [[user.name_first]]<br>
            [[user.name_last]]<br>
        </li>
    </ul>
</div>

1 个答案:

答案 0 :(得分:1)