我使用的是与之前项目中使用的相同的程序,我从Google提供的教程中学到了,但这次我没有得到任何结果..
我的代码是从我的数据存储中获取3个随机笑话,它只保留100个笑话&将它们显示在HTML表格中。
这是我的模特:
class joke(db.Model):
jokeID = db.IntegerProperty()
content = db.TextProperty()
这是我的控制器中的代码,我正在获取实体:
def get(self):
deck = range(1, 101)
shuffle(deck)
items = list()
itemCounter = 0
for jokeNumber in deck:
itemCounter += 1
if itemCounter <= 3:
self.response.out.write(jokeNumber)
# I tried with fetching from the model & with GqlQuery
#items.append(joke.all().filter('jokeID=',jokeNumber).fetch(1))
items.append(db.GqlQuery("SELECT * FROM joke WHERE jokeID=:1",jokeNumber))
else:
break
template_values = {'items' : items}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path,template_values))
&安培;这里是我用控制器中的数据填充HTML表格的地方:
<table border="0" width="800px">
{% for item in items %}
<form method="post" action="/ocena">
<tr>
<td>
{{ item.content }}
</td>
</tr>
</form>
{% endfor %}
</table>
在网站的源代码中,我得到三个空单元格,但是当我从GAE在数据存储区查看器中执行查询时,我得到了所需的结果..
答案 0 :(得分:2)
我已经检查了你的例子,这段代码对我有用:
def get(self):
deck = range(1, 101)
shuffle(deck)
items = db.GqlQuery("SELECT * FROM joke WHERE jokeID IN :1", deck[:3])
template_values = {'items' : items}
path = os.path.join(os.path.dirname(__file__), 'index.html')
self.response.out.write(template.render(path,template_values))
答案 1 :(得分:-1)
我的代码是3随机
def get_random_joke(self, category):
jokeinfo = JokeData.all().filter("category =", category)
return jokeinfo[random.randint(0, jokeinfo.count()-1)]
我认为如果您有类别,上面的代码可以从数据存储区中的类别中获取一个随机笑话。