我是Django rest和angularjs的新手。我正在尝试创建一个具有函数的Django视图,并且必须通过角度js中的按钮调用此函数。有人可以帮帮我吗? 谢谢
答案 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 / $(这里允许使用正则表达式) )或通过此处示例中所述的名称。
最好的运气:)