내가 뭘 잘못했는지 알 수 없습니다. GAE 데이터 저장소에 몇 가지 항목이 있습니다. Jinja2를 가져 왔습니다. Jinja2를 사용하여 페이지에 데이터 스토어 항목을 표시하려고합니다. Jinja2 렌더링 함수를 호출하는 바로 가기 함수를 만들었습니다.Jinja2를 사용하여 GAE 데이터 저장소의 데이터를 렌더링 할 수 없습니다.
def render_template(response, template_name, vars=dict()):
template_dirs = [os.path.join(root(), globals['templates_root'])]
env = Environment(loader=FileSystemLoader(template_dirs))
try:
template = env.get_template(template_name)
except TemplateNotFound:
raise TemplateNotFound(template_name)
content = template.render(vars)
response.response.out.write(content)
이렇게이 함수에 전달해야 할 것은 템플릿 파일 이름과 변수가있는 사전이 있습니다. 나는 다음과 같이이 함수를 호출 :
class MainHandler(webapp.RequestHandler):
def get(self, *args, **kwargs):
q = db.GqlQuery("SELECT * FROM Person")
persons = q.fetch(20)
utils.render_template(self, 'persons.html', persons)
Person
은 다음과 같다 모델, 거기에 공상 아무것도 :
class Person(db.Model):
first_name = db.StringProperty()
last_name = db.StringProperty()
birth_date = db.DateProperty()
내가 render_template
에 persons
사전을 통과하려고,이 오류가 발생합니다
TypeError: cannot convert dictionary update sequence element #0 to a sequence
그리고 렌더링하지 않습니다. {}
공백을 persons
인수로 전달하면 내 데이터가 렌더링되지만 분명히 표시되지 않습니다. 내가 뭘 잘못 했니? 나는 내가 놓친 작은 것이 있다고 확신하지만 정확히 무엇이 있는지 전혀 모른다. 감사!
물론입니다! 나는 그걸로 열망했다. 감사! –