【问题标题】:How to connect a Django view with angular js Front end?如何将 Django 视图与 Angular js 前端连接起来?
【发布时间】:2017-09-18 03:55:18
【问题描述】:

我对 Django rest 和 angularjs 还很陌生。我正在尝试创建一个 Django 视图,该视图将具有一个函数,并且必须通过 Angular js 中的按钮调用该函数。谁能帮帮我? 谢谢

【问题讨论】:

标签: python angularjs django django-rest-framework


【解决方案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 中设置了功能正常的 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/$(是的,这里允许使用正则表达式)或通过此处示例中所述的名称。

祝你好运:)

【讨论】:

  • 非常感谢会尝试一下
【解决方案2】:

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

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

【讨论】:

  • 谢谢你试试看
  • +1 推荐思想家,我从那里开始了我的旅程,但您必须使用一些代码作为答案,这对每个人来说都是一个很好的参考
  • @Shift N' Tab - 是的,你可能是对的,但这个问题太笼统了,所以我认为从一些好的教程开始是原始海报的最佳选择
  • @nick79 感谢教程很有帮助
  • @user7585518 很高兴看到您满意。
猜你喜欢
  • 2020-05-17
  • 1970-01-01
  • 1970-01-01
  • 2019-11-13
  • 1970-01-01
  • 1970-01-01
  • 2023-01-25
  • 2022-08-23
  • 1970-01-01
相关资源
最近更新 更多