使用户能够下载模板

时间:2018-01-29 21:00:36

标签: python google-app-engine

我有一个名为my.html的非常简单的html模板,只需通过下面的class Wifi访问,我想让用户下载同一个my.html文档作为文件。在class File我不知道如何访问模板以放置在self.response.out.write参数中。

或者,有没有办法让用户直接从Templates子目录中使用appcfg.py或类似内容下载模板?

class Wifi(BaseHandler):

    def get(self):
        template_values = { }
        template = JINJA_ENVIRONMENT.get_template('my.html')
        self.response.out.write(template.render( template_values))

class File(webapp.RequestHandler):

    def get(self, upload_type):
        self.response.headers['Content-Type'] = 'text/script'
        self.response.headers['Content-Disposition'] = "attachment; filename=my.html"
        self.response.out.write(??????????????)

1 个答案:

答案 0 :(得分:1)

我相信您可以简单地将模板作为文件读取,然后将其写出来:

class File(webapp.RequestHandler):

    def get(self):
        with open("templates/my.html", "r") as f:
            data = f.read()
        self.response.headers['Content-Type'] = 'text/script'
        self.response.headers['Content-Disposition'] = "attachment; filename=my.html"
        self.response.write(data)

您可能需要修复模板的路径。您可能需要不同的内容类型,因为模板实际上不是一个脚本。