【问题标题】:Call Django view function from AngularJS从 AngularJS 调用 Django 视图函数
【发布时间】:2017-03-16 12:00:35
【问题描述】:

我想在页面加载时获取现有用户的列表。从 Angular 脚本获取信息时一切正常,但它将存储在服务器端。我制作了一个 Django 视图:

def getUsers(request):
response = {}
response['user'] = {
    'username': 'guy1',
    'password': 'guy1',
    'fName': 'John',
    'lName': 'Smith',
    'email': 'guy1@host.com',
    'role': 'Employee',
    'theme': 'default'
}
return JsonResponse(response)

目前,我只是将我的用户传递到那里,稍后它将填充来自 postgre 数据库的信息。我想我设置的网址是正确的:

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^', views.dashboard, name='dashboard'),
    url(r'getUsers/', views.getUsers),
]

最后,我在页面加载时从 Angular 调用视图:

$http.get("getUsers")
    .then(function(output) {
        $scope.testUser = output;
        console.log($scope.testUser);
    });

当我运行所有内容时,浏览器控制台显示不正确 output.

关于我做错了什么有什么想法吗?谢谢。

【问题讨论】:

  • 我猜这是一个错误的请求,看看完整的 url 是否包含正确的服务器(如localhost....etc

标签: javascript angularjs django


【解决方案1】:

我会在这里做两件事。首先,将您的 URL 模式更改为如下所示:

url(r'^getUsers/$', views.getUsers),

其次,将您的 AngularJS 代码更改为如下所示:

$http.get("getUsers/")
  .then(function(output) {
    $scope.testUser = output;
    console.log($scope.testUser);
});

Django 对 URL 上存在(或不存在)的“/”很敏感。并且更改上面的 URL 模式可以明确它应该寻找什么。在您原来的情况下,该模式将匹配 getUsersgetUsers/abcgetUsers/12345 等。

【讨论】:

  • 非常感谢,这似乎已经解决了,我现在正在获取浏览控制台中传递的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-08-18
  • 2023-03-15
  • 2013-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-04
相关资源
最近更新 更多