实际服务器上的Django测试客户端

实际服务器上的Django测试客户端,django,django-views,django-testing,Django,Django Views,Django Testing,我正在测试使用Apache部署我的第一个Django项目 我使用从我自己的服务器执行“内部”GET,它在本地正常工作,但在实际服务器上不运行 客户端最终会收到Django错误消息,如 找不到页面(404)请求方法:获取请求 网址: 如何让客户机在实际的服务器上工作,让它在实际的http://my\u actual\u server\u name.something/polls/forms/test1而不是“testserver”上执行 我尝试在settings.py文件中设置SERVER\u N

我正在测试使用Apache部署我的第一个Django项目

我使用从我自己的服务器执行“内部”GET,它在本地正常工作,但在实际服务器上不运行

客户端最终会收到Django错误消息,如

找不到页面(404)请求方法:获取请求 网址:

如何让客户机在实际的服务器上工作,让它在实际的http://my\u actual\u server\u name.something/polls/forms/test1而不是“testserver”上执行


我尝试在settings.py文件中设置
SERVER\u NAME='my\u actual\u SERVER\u NAME.something'
,但事实并非如此。

Django的测试客户端实际上并没有发出HTTP请求,它只是发出一个请求对象并将其传递给您的中间件/视图

如果您的目标是向自己的服务器发出http请求,那么一种简单的方法是安装并执行以下操作

# 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请求感到好奇,您可以查看(
client.get()
calls
client.generic()
哪个调用
client.request()
哪个实例化了
WSGIRequest()
,然后将该对象传递给您的应用程序-这就是您在视图中收到的
请求
).

首先感谢您的回答。我正在使用第三方应用程序生成一些html(在其中一个视图中)并提供服务。在我自己的应用程序中,我只想获取html并存储它(从另一个应用程序提供的URL获取)。它不需要是一个实际的http请求。如果有一种方法可以让测试客户机像在本地一样在web服务器上工作,那就是great@S_alj如果要向另一个接受http请求的应用程序发出请求,可以使用
requests.get()
方法。只需运行应用程序(如果它是django并且没有暴露在更广泛的互联网上,
manage.py runserver
很好,不需要apache)并向itI发出请求,我已经让它在实际的服务器上使用请求!我正在使用结果的内容部分(如response=requests.get(url)->response.content)。非常感谢你的帮助!