2015-04-21 1 views
1

Я пытаюсь выполнить запрос POST с некоторыми данными в мой сценарий Django. Это просто что-то для внутреннего использования, поэтому безопасность не является проблемой, но, похоже, не хочет ничего печатать. Он печатает «ТЕСТ», поэтому я знаю, что почтовый запрос получен правильно, но согласно документам Django, HttpRequest.POST должен печатать словарь данных POST.Попытка сделать запрос POST от node.js к Django

Джанго

@csrf_exempt 
    def botdeposit(request): 
     if request.method == 'GET': 
      print(HttpRequest.GET) 
      return redirect('/') 
     elif request.method == 'POST': 
      print('TEST') 
      print(HttpRequest.POST) 
      return redirect('/') 

node.js

var request = require('request'); 

// Set the headers 
var headers = { 
    'User-Agent':  'Super Agent/0.0.1', 
    'Content-Type':  'application/x-www-form-urlencoded' 
} 

// Configure the request 
var options = { 
    url: 'http://127.0.0.1:8000/test', 
    method: 'POST', 
    headers: headers, 
    form: {'key1': 'xxx', 'key2': 'yyy'} 
} 

// Start the request 
request(options, function (error, response, body) { 
    if (!error && response.statusCode == 200) { 
     // Print out the response body 
     console.log(body) 
    } 
    console.log(body); 
}) 

ответ

2

request.POST волю. HttpRequest - это класс, и у вас есть его экземпляр. Как и в случае с документами, HttpRequest.method - вещь, но вы пишете request.method.

(Да, документы сбивают с толку, и не показывая хорошо разницу между значениями класса и экземпляра.)

+0

К сожалению, я не уверен, я понимаю ваш ответ. Я хочу получить пройденные значения формы, как я могу это сделать? Спасибо, что ответили. –

+0

Буквально замените 'print (HttpRequest.POST)' на 'print (request.POST)'. (То же самое для 'GET', очевидно) – Amadan

Смежные вопросы