Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python请求向localhost发布请求_Python_Python 3.x_Django_Python Requests - Fatal编程技术网

使用Python请求向localhost发布请求

使用Python请求向localhost发布请求,python,python-3.x,django,python-requests,Python,Python 3.x,Django,Python Requests,我有我的Django网站在我的本地服务器上运行,端口8000。从一个单独的python文件中,我想发送一个post请求,触发我网站的一个端点 但即使添加了所有必需的信息,也无法做到这一点。请帮忙 import requests URL = 'http://127.0.0.1:8000/api/org/create/' client = requests.Session() client.get(URL) csrftoken = client.cookies['csrftoken'] data

我有我的Django网站在我的本地服务器上运行,端口8000。从一个单独的python文件中,我想发送一个post请求,触发我网站的一个端点

但即使添加了所有必需的信息,也无法做到这一点。请帮忙

import requests
URL = 'http://127.0.0.1:8000/api/org/create/'
client = requests.Session()
client.get(URL)
csrftoken = client.cookies['csrftoken']

data = dict(csrfmiddlewaretoken=csrftoken)
headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36'}
response = client.post(URL, data=data,cookies=client.cookies, headers=headers)
print(response.status_code)
它给了我这个错误

EC:\Program Files\Python37\lib\unittest\case.py:643: ResourceWarning: unclosed <socket.socket fd=420, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 10510), raddr=('127.0.0
.1', 8000)>
  outcome.errors.clear()

======================================================================
ERROR: test_org_create (test_org.TestOrg)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "\test_org.py", line 13, in test_org_create
    csrftoken = client.cookies['csrftoken']
  File "\venv\lib\site-packages\requests\cookies.py", line 328, in __getitem__
    return self._find_no_duplicates(name)
  File "\venv\lib\site-packages\requests\cookies.py", line 399, in _find_no_duplicates
    raise KeyError('name=%r, domain=%r, path=%r' % (name, domain, path))
KeyError: "name='csrftoken', domain=None, path=None"

EC:\Program Files\Python37\lib\unittest\case.py:643:ResourceWarning:unclosed
result.errors.clear()
======================================================================
错误:test\u org\u create(test\u org.TestOrg)
----------------------------------------------------------------------
回溯(最近一次呼叫最后一次):
文件“\test\u org.py”,第13行,在test\u org\u create中
csrftoken=client.cookies['csrftoken']
文件“\venv\lib\site packages\requests\cookies.py”,第328行,在\uu getitem中__
返回self.\u查找\u无重复项(名称)
文件“\venv\lib\site packages\requests\cookies.py”,第399行,在“无重复项”中
raise KeyError('name=%r,domain=%r,path=%r%%(name,domain,path))
KeyError:“name='csrftoken',domain=None,path=None”
如何解决这个问题?
请评论任何其他信息。

因此,请查看以下部分中的错误和错误:

def\u查找不到重复项(self、name、domain=None、path=None):
“getitem”和“get”都调用这个函数:它从来都不是
在请求的其他地方使用。
…废话废话,忽略这些,很多东西
:如果找不到cookie,则引发KeyError
……诸如此类的废话也忽略了这一点,还有很多东西

查看
:引发关键错误:如果找不到cookie
似乎您丢失了cookie。您是否检查了响应中的cookie是否按预期正确设置?

为什么要在此处使用
请求
模块?我还可以使用什么?我正在为Rest API编写单元测试,并在独立测试中编写测试文件。还有其他想法吗?那怎么办?事实上,我不能使用它,因为它需要像数据库引擎这样的依赖项,我在外部使用Dynamo DB。这就是为什么我写了一个单独的测试文件来测试我的网站。许多人面临同样的问题。如何向我的本地服务器发送post请求?虽然我添加了cookies,但会检查ey符合要求。