Войдите в админку 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)
Вернуться на верх