[Flask] Having troubles with template rendering in class-based routing

Don Dwiggins ddwiggins at advpubtech.com
Wed Nov 25 15:56:48 EST 2015


I'm having trouble doing routing with class-based dispatching.

In my url_map, I have a rule: "<Rule '/Home/<name>' (HEAD, OPTIONS, GET) 
-> Home>".

The view_func set to:
> self.RenderTemplateView.as_view( self.label, self.label+'.html', 
> 'templates')
where self.label='Home', and there's a template in "templates/Home.html" 
that renders differently depending on whether <name> has a value or is None.

RenderTemplateView is defined as:
>     class RenderTemplateView(flask.views.View):
>         def __init__(self, template_name, *args, **kwargs):
>             self.template_name = template_name
>
>         def dispatch_request(self, *args, **kwargs):
>             return flask.render_template(self.template_name)

Call it with "http://127.0.0.1:5000/Home/thing" renders the template, 
except that the <name> variable is bound to None, not to "thing".  If I 
add "name='thing' " to the render_template call, it does get included in 
the display.

I've tried a number of things, including inserting a line "x = 1/0" 
before the render_template call to get a traceback, then examining the 
sequence of calls; I couldn't find anything helpful.

Decorator-based routing works fine, but isn't an option for me.

Any good words appreciated,


-- 

Don Dwiggins
Advanced Publishing Technology

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/flask/attachments/20151125/b77e645b/attachment.html>


More information about the Flask mailing list