Ejemplo n.º 1
0
    def render_view(self, request, path=''):
        """Default controller.
        Render the template at `path` guessing it's mimetype.
        """
        path = self._normalize_path(path)
        fn, ext = os.path.splitext(path)
        real_ext = self._translate_ext(ext)
        fullpath = os.path.join(self.source_dir, path.lstrip('/'))

        if not os.path.exists(fullpath):
            ext, path, fullpath = self._get_alternative(path)
            if not fullpath:
                return self.not_found()

        plain_text_exts = self.settings.plain_text
        if ext in plain_text_exts or utils.is_binary(fullpath):
            return send_file(request, fullpath)

        try:
            resp = self.render(path, **self.settings)
        except TemplateSyntaxError, e:
            print '-- WARNING:', 'Syntax error while trying to process', \
                    utils.to_unicode(path), 'as a Jinja template.'
            source = utils.get_source(fullpath)
            resp = Response(source)
            print e
Ejemplo n.º 2
0
 def render_view(self, request, path=''):
     """Default controller.
     Render the template at `path` guessing it's mimetype.
     """
     path = self._normalize_path(path)
     try:
         content, ext = self.render(path, **self.settings)
         mimetype = mimetypes.guess_type('a' + ext)[0] or 'text/plain'
     except TemplateNotFound:
         return self.not_found()
     if content:
         return Response(content, mimetype=mimetype)
     
     fullpath = os.path.join(self.source_dir, path)
     if not os.path.isfile(fullpath):
         return self.not_found() 
     return send_file(request, fullpath)