Невозможно распечатать данные из базы данных, используя новую версию - PullRequest
1 голос
/ 26 июля 2011

Я использую последнюю версию web.py.

Я пытаюсь распечатать данные из базы данных на веб-странице.Код, который я использую, выглядит следующим образом:

import web
from google.appengine.ext import db
from models import *

urls = (
  '/', 'index',
)

render = web.template.render('templates', base='base')

class index:
    def GET(self):
        votes = db.GqlQuery("SELECT * FROM votes")
        return render.index(votes)

app = web.application(urls, globals())
main = app.cgirun()

, шаблон выглядит следующим образом:

$def with(votes)


$for vote in votes:
    <li>$vote.status</li>

, и я получаю его при запуске

[<models.votes object at 0x0000000004525F28>]

Этоошибка с новой версией, потому что в предыдущей версии она работает.

Я забыл сказать, что я компилирую свои шаблоны, как указано здесь .

Ответы [ 2 ]

0 голосов
/ 27 июля 2011

Он работает на моей машине, работает под управлением последней web.py 0.36 с этим кодом:

main.py

import web
from google.appengine.ext import db

class Votes(db.Model):
  status = db.StringProperty()

urls = (
  '/', 'Index',
)

render = web.template.render('templates', base='base')

class Index:
    def GET(self):
        vote = Votes()
        vote.status ="foo"
        vote.put()

        votes = db.GqlQuery("SELECT * FROM Votes")
        return render.index(votes)

app = web.application(urls, globals())
main = app.cgirun()

шаблоны / index.html

$def with(votes)

$for vote in votes:
    <li>$vote.status</li>

templates / base.html

$def with (content)
<html>
    <head>
    </head>
    <body>
        $:content
    </body>
</html>

это результат:

  • Foo
0 голосов
/ 26 июля 2011

Я не использую web.py;но, возможно, он не поддерживает генераторы / итерации в шаблонах, как ожидалось.Попробуйте сначала извлечь результаты, изменив строку на:

votes = db.GqlQuery("SELECT * FROM votes").fetch(100)
...