Templates vs. coded HTML
I would highly recommend using templates.  Templates help to encourage a good MVC structure to your application.  Python code that emits HTML, IMHO, is wrong.  The reason I say that is because Python code should be responsible for doing logic and not have to worry about presentation.  Template syntax is usually restrictive enough that you can't really do much logic within the template, but you can do any presentation specific type logic that you may need.
ymmv.
I have a web-app consisting of some html forms for maintaining some tables (SQlite, with CherryPy for web-server stuff).  First I did it entirely 'the Python way', and generated html strings via. code, with common headers, footers, etc. defined as functions in a separate module.
I also like the idea of templates, so I tried Jinja2, which I find quite developer-friendly.  In the beginning I thought templates were the way to go, but that was when pages were simple.  Once .css and .js files were introduced (not necessarily in the same folder as the .html files), and an ever-increasing number of {{...}} variables and {%...%} commands were introduced, things started getting messy at design-time, even though they looked great at run-time.  Things got even more difficult when I needed additional javascript in the  or  sections.
As far as I can see, the main advantages of using templates are:
   Non-dynamic elements of page can easily be viewed in browser during design.
   Except for {} placeholders, html is kept separate from python code.
   If your company has a web-page designer, they can still design without knowing Python.
while some disadvantages are:
   {{}} delimiters visible when viewed at design-time in browser
   Associated .css and .js files have to be in same folder to see effects in browser at design-time.
   Data, variables, lists, etc., must be prepared in advanced and either declared globally or passed as parameters to render() function.
So - when to use 'hard-coded' HTML, and when to use templates?  I am not sure of the best way to go, so I would be interested to hear other developers' views.
TIA, Alan