How to get something random in datastore (AppEngine)?

后端 未结 4 2044
北荒
北荒 2020-12-01 18:28

Currently i\'m using something like this:

    images = Image.all()
    count = images.count()
    random_numb = random.randrange(1, count)
    image = Image.         


        
4条回答
  •  野趣味
    野趣味 (楼主)
    2020-12-01 19:08

    Another (less efficient) method, which requires no setup:

    query = MyModel.all(keys_only=True)
    
    # query.filter("...")
    
    selected_key = None
    n = 0
    for key in query:
      if random.randint(0,n)==0:
        selected_key = key
      n += 1
    
    # just in case the query is empty
    if selected_key is None:
      entry = None
    else:
      entry = MyModel.get(selected_key)
    

提交回复
热议问题