Я использовал requests для отправки запроса.Django: почему CSRF_COOKIE в запросе.META
import requests
def print(req):
print('{}\n{}\n{}\n\n{}'.format(
'-----------START-----------',
req.method + ' ' + req.url,
'\n'.join('{}: {}'.format(k, v) for k, v in req.headers.items()),
req.body,
))
print "----------END------------"
try:
req = requests.Request('GET',
'https://myip/myproject/upload/token',
headers={'Authorization': 'Token 401f7ac837a',
})
prepared = req.prepare()
print(prepared)
except Exception as e:
print "Exception:", e
Выход:
-----------START-----------
GET https://myip/myproject/upload/token
Authorization: Token 401f7ac837a
None
----------END------------
Но после того, как я напечатал request.META, есть
META:{u'CSRF_COOKIE': u'YGzoMaNEQJz1Kg8yXAwjJt6yNuT9L'
Что установить CSRF_COOKIE? Любые комментарии приветствуются. Благодаря
UPDATE
(1) Из doc, он сказал Это печенье устанавливается CsrfViewMiddleware, что означает, что куки CSRF были установлены в фоновом и установите передний конец в ответ (CSRF cookie: server -> browser). Почему он также сказал Для всех входящих запросов, которые не используют HTTP GET, HEAD, OPTIONS или TRACE, должен присутствовать файл cookie CSRF? И почему это появляется в моей просьбе. МЕТА? (CSRF cookie: browser -> server ???)
(2) Он сказал ** Поле скрытой формы с именем «csrfmiddlewaretoken» присутствует во всех исходящих POST-формах. Значение этого поля - это значение cookie CSRF.
Эта часть сделана тегом шаблона. **
Когда и как это делает тег шаблона?
Спасибо. Что генерирует и устанавливает CSRF_COOKIE? – BAE