Requêtes Python et erreur 404 avec Django/tasty-pie
-
12-12-2019 - |
Question
J'ai une application Django qui propose une API RESTful utilisant une tarte savoureuse.
J'utilise le développement de Django runserver
tester.
Lorsque j'y accède via un navigateur, cela fonctionne bien, et utiliser Curl fonctionne également bien :
curl "http://localhost:8000/api/v1/host/?name__regex=&format=json"
Sur la console avec runserver, je vois :
[02/Oct/2012 17:24:20] "GET /api/v1/host/?name__regex=&format=json HTTP/1.1" 200 2845
Cependant, lorsque j'essaie d'utiliser le module de requêtes Python (http://docs.python-requests.org/en/latest/), j'obtiens un 404 en sortie :
>>> r = requests.get('http://localhost:8000/api/v1/host/?name__regex=&format=json')
>>> r
<Response [404]>
ou:
>>> r = requests.get('http://localhost:8000/api/v1/host/?name__regex=&format=json')
>>> r
<Response [404]>
De plus, sur la console runserver de Django, je vois :
[02/Oct/2012 17:25:01] "GET http://localhost:8000/api/v1/host/?name__regex=&format=json HTTP/1.1" 404 161072
Pour une raison quelconque, lorsque j'utilise des requêtes, l'URL complète de la requête est affichée, y compris localhost - mais pas lorsque j'utilise le navigateur ou curl.
Je suppose que cela a quelque chose à voir avec l'encodage, l'agent utilisateur ou le type de requête qu'il envoie ?
La solution
Je ne connais pas très bien les requêtes, mais je pense que votre idée d'encodage pourrait être judicieuse.C'est-à-dire que les requêtes pourraient traiter l'URL d'une manière ou d'une autre ?Peut-être qu'au lieu de tout transmettre directement dans l'URL, essayez de faire quoi Demandes de documents suggérer:
request_params = { 'name_regex' : '', 'format' : 'json' }
r = requests.get( 'http://localhost:8000/api/v1/host/', params = request_params )