我正在测试使用Apache部署我的第一个Django项目。
我使用Django's test client执行"内部"从我自己的服务器获取,它在本地工作正常,但没有在实际服务器上运行。
客户端最终收到Django错误消息,例如
找不到页面(404)请求方法:GET请求 网址:http://testserver/polls/forms/test1/
如何让客户端 GET 在实际服务器上工作,让它在实际的http://my_actual_server_name.something/polls/forms/test1上执行" testserver" ?
我尝试在settings.py文件中设置SERVER_NAME= ‘my_actual_server_name.something’
,但那不是。
答案 0 :(得分:2)
Django的测试客户端实际上并不发出HTTP请求,只是创建一个请求对象并将其传递给您的中间件/视图。
如果你的目标是向自己的服务器发出http请求,一种简单的方法是安装requests并执行类似
的操作# Some server on the network
requests.get("http://myserver.com/polls/forms/test1/")
# or some server running on the same machine
requests.get("http://12.0.0.1:8000/polls/forms/test1/")
如果您只想使用某些视图的功能,您应该将该逻辑移动到一个函数中,并从视图和其他代码中调用它。
如果您对测试客户端如何不发出http请求感到好奇,可以查看the test client's code in the django source client.get()
调用client.generic()
,调用client.request()
实例化WSGIRequest()
然后将该对象传递给您的应用 - 这是您在观看中收到的request
。