我可以通过网络浏览器(http://127.0.0.1:8983/solr
)访问本地地址,以查看Solr管理员(搜索网络应用)。
但是,通过Django(1.7)测试客户端,我得到了:
>>> from django.test import Client >>> c = Client() >>> response = c.get('http://127.0.0.1:8983/solr') >>> response.status_code 404
为什么Django不能连接到与浏览器相同的地址?
答案 0 :(得分:4)
您应该向get()
提供相对网址:
c.get("/solr/")
这在Testing Tools页面记录:
检索网页时,请记住指定网址的路径,而不是 整个域。例如,这是正确的:
c.get('/login/')
这是不正确的:
c.get('http://www.example.com/login/')
答案 1 :(得分:1)
添加@ alecxe' s answer您应该指定相对网址;使用reverse()
获取网址的最佳做法是:
from django.core.urlresolvers import reverse
from django.test import Client
c = Client()
# assuming you've named the route 'solar'
url = reverse('solar')
c.get(url)