【问题标题】:passing parameter from angular $http.get to django views.py through url通过 url 将参数从 angular $http.get 传递给 django views.py
【发布时间】:2017-05-08 07:18:09
【问题描述】:

我正在尝试从 Angular 发出 GET 请求,将参数传递给 django 的 view.py。
我要返回的网址是/contact/api/getName?name=John 并且他们都没有在views.py 中点击api_get_client_info,因为正在打印api_get_client_info 中的字符串和值。但我在请求后收到“成功”消息。

HTML:

      <select ng-change="selectName(name)" ng-model="name">
        <option value="" disabled>Select from List</option>
        <option ng-repeat="name in nameList" value="{{name.Name}}"> {{name.Name}} </option>
      </select>

$http.get 角度控制器中的请求:

        $scope.selectName= function(name){
    Method 1: 
            $http.get("/contact/api/getName", {params: {"personName": name}})
            .success(function(response) {
                console.log("success");
            })
            .error(function(response){
                console.log("failed");
            })

    Method 2:
           $http({
             method:'GET',
             url: '/contact/api/getName?=' + name 
           })
           .success(function(data) {
             console.log("success");
           })
           .error(function(data){
             console.log("failed");
           })
       }

Django url.py

urlpattern = [
  url(r'^api/getName(?P<personName>[a-zA-Z0-9_]+)/$', views.api_get_person_info),
  url(r'', views.main, name='contact',
]

Django 视图.py

def api_get_person_info(request):
    print("here")
    person = request.GET.get("personName")
    print(person)

【问题讨论】:

    标签: javascript python angularjs django parameter-passing


    【解决方案1】:

    我猜你的意思是api_get_person_info 中的语句没有被打印出来。

    这是因为您的网址不匹配。您的模式需要 URL 本身中的 personName:即api/getName/John/,但您在查询字符串中传递参数api/getName?personName=John。您应该将模式设为 r'^api/getName$'

    你得到 200 的原因是因为第二个模式,对于contact确实匹配;您还没有终止正则表达式,因此它匹配所有内容。该模式应该是r'^$'

    【讨论】:

    • 太棒了!我通过将 url 更改为 url(r'^api/getClientInfo', views.api_get_client_info), 让它工作
    猜你喜欢
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-06
    • 2018-03-21
    • 1970-01-01
    • 2017-10-19
    • 2017-11-29
    相关资源
    最近更新 更多