如何读取来自前端的数据?

时间:2017-02-11 10:16:50

标签: django python-2.7

我从前端获得json响应,如

   Object {distict: "bangalore", taluka: "vijaypura", taluka2: "rural", distict1: "vijaypura", taluka3: "singagi"}

如何将数据读取到后端并保存到数据库中

我更新鲜,所以对我有帮助

1 个答案:

答案 0 :(得分:1)

取决于您发送数据的方式 1:GET

data_rec = request.GET['distict']

2:POST

data_rec = request.POST['distict']

这是一个简单的草案代码

@login_required
def feed_read_body(request):
    with transaction.atomic():
        pk = int(request.GET.get('pk' ,None))
        feed = NewsFeed.objects.get(id=pk)
        return JsonResponse({'body':feed.body})

    return JsonResponse( {'error_msg':False})

使用javascript或JQuery前端通过GET发送数据

function load_text(obj){
  textedite_parent = $(obj).closest("span");
  var textedite = $(textedite_parent).find('textbody').first();
  pk = $(obj).attr('feed');

  $.ajax({
      url:'/api/feed/read/body/',
      data: {
          'pk': pk
      },
      type: 'get',

      success: function(data) {
        $(textedite).text(data.body);
        $(obj).hide();
      };

  });

};

通过POST发送数据。出于安全原因,帖子需要CSRF-Tokens只需将此功能添加到ajax

  beforeSend: function(xhr, settings) {
    if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
        //$(".loading").show()
        xhr.setRequestHeader("X-CSRFToken", getCookie('csrftoken'));
    }
},

并将类型从get更改为post

从cookie获取CSRFToken使用此功能

  function getCookie(name) {
      var cookieValue = null;
      if (document.cookie && document.cookie != '') {
          var cookies = document.cookie.split(';');
          for (var i = 0; i < cookies.length; i++) {
              var cookie = jQuery.trim(cookies[i]);
              // Does this cookie string begin with the name we want?
              if (cookie.substring(0, name.length + 1) == (name + '=')) {
                  cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                  break;
              }
          }
      }
      return cookieValue;
  }