在Django中采样mysql结果

时间:2011-05-13 09:25:35

标签: mysql django sample

我正在运行django raw sql。让我们说如果它返回250条记录。我想根据用户在表单上给出的输入百分比(在模板中)对结果进行采样。我们怎样才能做到这一点?我可以使用get方法获取用户给出的输入数字。之后我怎样才能对记录进行采样?请帮帮我

-Vikram

1 个答案:

答案 0 :(得分:1)

我不知道你为什么要使用原始sql,但是这里有一种方法可以使用Django查询来实现...

def sample_results(request):
  try:
    perc = float(request.GET['percent'])
  except AttributeError:
    # Default to showing all records
    perc = 100

  # Decimal version of percent
  perc = perc / 100

  # get all objects in a random order
  results = SomeModel.objects.all().order_by("?")

  #determine how many to grab from the queryset
  num = results.count()
  grab = int(num * perc)

  # refine the results to the first however many we need
  results = results[:grab]

  return render_to_response("some/template.html", {"results": results}, context_instance=RequestContext(request))

因此,如果你有/ some / url?percent = 40,这将显示模型中所有对象的40%,随机化。