However, I can't figure out how to parse a template stored in a string, rather than pointing to one in a file. Is this possible?
It seems so, according to the api documentation:
from chameleon import PageTemplate
t = PageTemplate('some string template')
rendered_content = t.render(encoding='utf-8')