Войдите в админку django через запросы
Я хочу войти на сайт администратора django через скрипт python, используя библиотеку requests.
Из ответа в другом посте (здесь) я понял, что использование requests.Session() будет уместным. Однако, попробовав следующий код, я получил 403 - запрещенный код состояния.
url = 'url_to_django_admin_login_page'
payload = {'username': 'some_username', 'password': 'some_password'}
with reqeuests.Session() as s:
r = s.post(url, data=payload)
print(r)
>>> <Response [403]>
Я проверил учетные данные в браузере, так что все должно быть в порядке.
Для ключей в дикте полезной нагрузки я пробовал оба значения ключей полей ввода формы name и id (я думаю name будет правильным)
Вы забыли о CSRF
import requests
url = 'admin_url'
s = requests.Session()
s.get(url)
payload = {'username': 'admin', 'password': 'password', 'csrfmiddlewaretoken': s.cookies['csrftoken']}
r = s.post(url, data=payload)
print(r)