Je voudrais ajouter une option de moi-même, ici. Quelqu'un se demanderait comment définir le chemin dans urls.py, tel que
domain/search/?q=CA
afin que nous puissions invoquer la requête.
Le fait est qu'il n'est PAS nécessaire de définir une telle route dans urls.py. Ce que vous devez définir est simplement l'itinéraire dans urls.py
urlpatterns = [
path('domain/search/', views.CityListView.as_view()),
]
et quand vous entrez http: // nomserveur: port / domaine / Recherche / q = CA . La partie de requête '? Q = CA' sera automatiquement réservée dans la table de hachage que vous pouvez référencer
request.GET.get('q', None).
Voici un exemple (views.py)
class CityListView(generics.ListAPIView):
serializer_class = CityNameSerializer
def get_queryset(self):
if self.request.method == 'GET':
queryset = City.objects.all()
state_name = self.request.GET.get('q', None)
if state_name is not None:
queryset = queryset.filter(state__name=state_name)
return queryset
En outre, lorsque vous écrivez une chaîne de requête en URL
http://servername:port/domain/search/?q=CA
N'encapsulez pas la chaîne de requête entre guillemets, par exemple
http://servername:port/domain/search/?q="CA"