【问题标题】:How to create unique method for url parameters?如何为 url 参数创建唯一方法?
【发布时间】:2017-10-12 19:56:48
【问题描述】:

这是我的get方法:

if request.method == 'GET':
        myObject = myObjectClass.objects.all()
        serializer = myObjectSerializer(myObject, many=True)
        return Response(serializer.data)

让我们假设响应是这样的:

[
  {
    "id": 1,
    "data1": 12,
    "data2": "example1"
  },
  {
    "id": 2,
    "data1": 11,
    "data2": "example3"
  },
  {
    "id": 3,
    "data1": 12,
    "data2": "example3"
  }
]

我想创建使用 URL http://localhost:8000/data/?data1=12 的方法来获得响应:

 [
      {
        "id": 1,
        "data1": 12,
        "data2": "example1"
      },
      {
        "id": 3,
        "data1": 12,
        "data2": "example3"
      }
 ]

我的问题是我想创建独特的方法。例如,我们可以使用 URL http://localhost:8000/data/?data2="example3" 作为响应,我们会得到:

 [
          {
            "id": 2,
            "data1": 11,
            "data2": "example3"
          },
          {
            "id": 3,
            "data1": 12,
            "data2": "example3"
          }
     ]

我想知道这是否可能?什么是最好的解决方案?我一直在尝试使用 request.GET、request.GET.get() 等,但没有任何效果。提前致谢。

【问题讨论】:

    标签: python json django url parameters


    【解决方案1】:

    request.GET.get() 应该适用于检索您发送的查询参数。类似于以下内容:

    if request.GET.get('data1'):
        print request.GET.get('data1')
    
    if request.GET.get('data2'):
        print request.GET.get('data2')
    

    或者,您可以使用正则表达式来使用动态 url 模式。

    【讨论】:

    • 但我必须分别处理每个案例。也许有一种适合所有情况的方法?
    • 您的意思是每个案例都有单独的视图?如果是,那么您的答案是动态 url 模式,例如 xyz.com/data1/,获取数据为 {data1: "example"}xyz.com/data2/,获取查询为 {data2: "some more"}
    猜你喜欢
    • 2016-12-12
    • 2011-01-14
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 2022-11-28
    • 1970-01-01
    • 2023-02-25
    • 1970-01-01
    相关资源
    最近更新 更多