簡體   English   中英

Django URL,在URL中傳遞參數

[英]Django URL, pass parameters in URL

我想創建如下網址:

/api/foodfeeds/?keywords=BURGER,teste&mood=happy&location=2323,7767.323&price=2

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

class FoodfeedList(APIView):
    # permission_classes = (permissions.IsAuthenticated,)
    def get(self,request,keywords,mood,location,price):
        print(request.GET['keywords'])

正如@Umair所說,您要將這些鍵作為URL查詢參數進行傳遞,因此不必在URLPATTERNS提及它

對於您的情況,要獲取通過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

這些keywordsmoodlocation等是query params您不應在url中包括這些query params ,而應通過request.query_params訪問它們

參考: http : //www.django-rest-framework.org/api-guide/requests/#query_params

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM