【发布时间】:2017-09-18 03:55:18
【问题描述】:
我对 Django rest 和 angularjs 还很陌生。我正在尝试创建一个 Django 视图,该视图将具有一个函数,并且必须通过 Angular js 中的按钮调用该函数。谁能帮帮我? 谢谢
【问题讨论】:
标签: python angularjs django django-rest-framework
我对 Django rest 和 angularjs 还很陌生。我正在尝试创建一个 Django 视图,该视图将具有一个函数,并且必须通过 Angular js 中的按钮调用该函数。谁能帮帮我? 谢谢
【问题讨论】:
标签: python angularjs django django-rest-framework
说这是你的 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 中设置了功能正常的 Angular 应用程序和/或控制器
您可以使用以下代码调用 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 必须是 url 的“名称”
url(r'^random/getRandomInfo/$',random.getRandomInfo, name='getRandomInfo'),
在这里,您的控制器名称是随机的,并且该控制器中的一个函数是 def getRandomInfo,因此 django 允许通过两种方式访问此端点,或者通过 url r'^random/getRandomInfo/$(是的,这里允许使用正则表达式)或通过此处示例中所述的名称。
祝你好运:)
【讨论】:
这可能会有所帮助: Django - Angular Tutorial
一般答案是: 1)使用例如Django REST公开你的方法(端点) 2) 从 Angular 应用程序向先前公开的端点发送请求。
【讨论】: