3

Web ブラウザー ( http://127.0.0.1:8983/solr) を介してローカル アドレスにアクセスし、Solr Admin (webapp を検索) を表示できます。

ただし、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 がブラウザと同じアドレスに接続できないのはなぜですか?

4

2 に答える 2

5

次の相対 URLを指定する必要がありget()ます。

c.get("/solr/") 

これは、テスト ツールのページに記載されています。

ページを取得するときは、ドメイン全体ではなく、URL のパスを指定することを忘れないでください。たとえば、これは正しいです。

c.get('/login/') 

これは正しくありません:

c.get('http://www.example.com/login/')
于 2015-04-03T02:13:53.840 に答える
1

相対URLを指定する必要があるという@alecxeの回答に追加します。reverse()URL を取得するために使用するベスト プラクティス:

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)
于 2015-04-03T02:17:16.110 に答える