Да, вместо того, чтобы делать template.writes
, вы можете сгенерировать следующий шаблон - так как template.render(...)
просто возвращает текст. Затем вы можете сохранить возвращенный текст и поместить его в хранилище данных, затем извлечь его позже и вызвать .render(Context(...))
, чтобы вернуть HTML, который вы хотите сгенерировать.
Вы не можете записать сгенерированный шаблон в файл - поскольку приложения AppEngine не имеют доступа на запись в файловую систему, только на чтение.
Если вы измените функцию 'generate_tamplate
' на использование шаблона, псевдокод может выглядеть следующим образом:
from google.appengine.ext.webapp import template
def generate_tamplate(model):
t = template.render(path_to_template1.html, Context({'model':model}))
DataStoreTemplate(template=t, name=model.name).put()
''' Later, when you want to generate your page for that model '''
def generate_page(model):
t = DataStoreTemplate.all().filter("name =",model.name).get().template
htmlresult = t.render(Context({'model':model}))
return htmlresult