django csrf_token 验证与 python 请求模块

问题描述

我想使用 python requests 模块发送 post 请求。因为,我使用 Django 作为后端服务器。所以,我需要为 post 方法验证 csrf_token。我知道我可以选择使用 Django 内置装饰器来停止 csrf_token 验证。但是,我不想为了跨站点保护而这样做。 我的 Django 示例代码

from django.http import HttpResponse
from django.middleware.csrf import get_token

def pv(v,s):
    print(f"----------Value of {s}-------")
    print(f"Type= {type(v)}")
    print()
    print(v)
    print()

def index(request):
    pv(request.COOKIES,"HttpRequest.COOKIES")
    pv(request.headers,"HttpRequest.headers")
    token = get_token(request) # I think,Here have some worng. But What?
    return HttpResponse("Hello World")

index() 适用于 get 和 post 请求。虽然我没有在示例代码中使用 redirect() 作为 post 方法。这是我使用 python requests 模块获取和发布请求代码

import requests
import time

def pv(obj,s):
    print(f"-----Value of {s} --------")
    print(type(obj))
    print(obj)
    print()

url = "http://192.168.0.102:8000/home/"
data = {"a":"5","b":4}
d = requests.get(url)
time.sleep(2)

requests.post(url,cookies=d.cookies,data=data)

# For Test
pv(d.headers,"d.headers")
pv(d.cookies['csrftoken'],"d.cookies")

get 请求正常工作并返回我 csrf_token.when 我将此令牌与 post 方法一起使用。 Django 服务器给我 Forbidden(CSRF 令牌丢失或不正确。):/home/ 错误并且发布请求无法正常工作。如何验证 csrf_token?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)