[英]Django URL, pass parameters in URL
I want to create url like: 我想创建如下网址:
/api/foodfeeds/?keywords=BURGER,teste&mood=happy&location=2323,7767.323&price=2 /api/foodfeeds/?keywords=BURGER,teste&mood=happy&location=2323,7767.323&price=2
urls.py urls.py
urlpatterns = [
path('admin/', admin.site.urls),
url(r'^api/foodfeed/(?P<keywords>[0-9.a-z, ]+)/(?P<mood>[0-9.a-z, ]+)/(?P<location>[0-9]+)/(?P<price>[0-9]+)/$', backend_views.FoodfeedList.as_view()),
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
views.py views.py
class FoodfeedList(APIView):
# permission_classes = (permissions.IsAuthenticated,)
def get(self,request,keywords,mood,location,price):
print(request.GET['keywords'])
As @Umair said, you're passing those keys as URL query parameters , so you don't have to mention it in URLPATTERNS
正如@Umair所说,您要将这些键作为URL查询参数进行传递,因此不必在
URLPATTERNS
提及它
In your case, to get the data you're passing through the URL, follow the below code snippet 对于您的情况,要获取通过URL传递的数据,请遵循以下代码段
#urls.py
urlpatterns = [
path('admin/', admin.site.urls),
url(
r'^api/foodfeed/', backend_views.FoodfeedList.as_view()),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
#views.py
class FoodfeedList(APIView):
# permission_classes = (permissions.IsAuthenticated,)
def get(self, request): print(request.GET) # print all url params print(request.GET['keywords']) print(request.GET['mood'])
# etc
Those keywords
, mood
, location
, etc are query params
you should not include those in url, rather you should access them via request.query_params
这些
keywords
, mood
, location
等是query params
您不应在url中包括这些query params
,而应通过request.query_params
访问它们
Reference : http://www.django-rest-framework.org/api-guide/requests/#query_params 参考: http : //www.django-rest-framework.org/api-guide/requests/#query_params
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.