通过请求登录到 django admin

Login to django admin via requests

我想使用请求库通过 python 脚本登录 django 管理站点。

根据另一个帖子的回答 (here),我认为使用 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]>

我在浏览器中检查了凭据,所以应该没问题。

对于有效负载字典中的键,我尝试了表单输入字段键 nameid 的两个值(我认为 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)