如何连接Django视图与角度js前端?

时间:2017-04-21 08:33:14

标签: python angularjs django django-rest-framework

我是Django rest和angularjs的新手。我正在尝试创建一个具有函数的Django视图,并且必须通过角度js中的按钮调用此函数。有人可以帮帮我吗? 谢谢

2 个答案:

答案 0 :(得分:2)

这可能会有所帮助: Django - Angular Tutorial

一般答案是: 1)使用例如Django REST公开你的方法(端点) 2)从Angular应用程序发送请求到先前暴露的端点。

答案 1 :(得分:1)

说这是你的Django / python api终点(假设控制器文件是random.py)

def getRandomInfo(request):
try:
    result = database.getRandomInfo()
    return JsonResponse(result, content_type="application/json", safe=False)
except Exception as e:
    import traceback
    traceback.print_exc(e)
    return JsonResponse({error:'sorry'}, content_type="application/json", safe=False)

通过angular,只要您已经解决了所有依赖项并在html / js中设置了一个正常运行的角度应用和/或控制器

您可以使用以下代码调用api

app.controller("appControllerName", function ($scope, $http) {
    $http.get("{% url 'getRandomInfo' %}")
            .success(function (response, status) {
                response_data = response
                $scope.data = response_data;
            }).error(function (response, status) {
        $scope.status = status;
    });
  }

如果您注意到{%url' getRandomInfo' %},这是在你的urls.py中定义的,你必须在那里添加这样的一行,其中getRandomInfo必须是' name'的网址

url(r'^random/getRandomInfo/$',random.getRandomInfo, name='getRandomInfo'),

在这里,您的控制器名称是随机的,并且该控制器中的函数是def getRandomInfo,因此django允许两种方式来访问此端点,通过url r' ^ random / getRandomInfo / $(这里允许使用正则表达式) )或通过此处示例中所述的名称。

最好的运气:)