使用Python请求向localhost发布请求
我有我的Django网站在我的本地服务器上运行,端口8000。从一个单独的python文件中,我想发送一个post请求,触发我网站的一个端点 但即使添加了所有必需的信息,也无法做到这一点。请帮忙使用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
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符合要求。