2017-04-21 34 views
1

我相当新的Django休息和angularjs。我试图创建一个Django视图,它将有一个函数,这个函数必须通过角js中的按钮来调用。任何人都可以请帮我吗? 感谢如何使用角度js连接Django视图前端?

+0

退房[Django的角度(https://github.com/jrief/django-angular) – dspacejs

回答

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) 

通过角,只要你已经解决了所有的依赖,并有一个正常的角度应用程序和/或控制器在你的HTML设置/ JS

您可以使用下面的代码

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' %}调用API,这是您的urls.p定义Y,日子会把你必须添加这样一行在那里有getRandomInfo将是网址

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

在这里你控制器名称是随机的,并且控制器内的功能是高清getRandomInfo的“名” ,所以django允许有两种方法来访问这个端点,或者通过url r'^ random/getRandomInfo/$(是的,这里允许使用正则表达式),或者通过这里的例子中的名字来访问这个端点。

祝您好运:)的

+1

非常感谢您会尝试一下 – user7585518

2

这可能帮助: Django - Angular Tutorial

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

+0

感谢会尝试一下 – user7585518

+0

+1指thinkster,我开始了我从那里的旅程,但你必须使用一些代码的答案,这将是一个伟大的人人参考 –

+0

@Shift N'Tab - 是的,你可能是对的,但问题太笼统了,所以我认为这将是最好的选择,为原始海报开始一些很好的教程 – nick79