Lately I've been working with quite a few designers so I've been thinking about what exactly constitutes the ideal working relationship. Here are some of the models I've seen, in order of best to worst.
The designer provides a final templates (in the template syntax, with inheritance, blocks, etc.), with example data, and I plug some template syntax in there to wire it up with the real data. This is pretty convenient, the one downside is that I, the developer, have to know things like "do we truncate the values here", "do we need an ellipsis", or "if we only have 4 values do we have 2 columns with 3 and 1 values, or 2 columns with 2 and 2 values". This model requires whatever HTML/CSS the designer provides to cover all the scenarios, or the developer would be running back and forth asking questions all day.
The designer provides some HTML/CSS files. For these I have to convert them to the template syntax, and substitute the real values here. Here I need to know a lot about the semantics of the table to figure out what belongs in what blocks, how page elements are used across different pages, etc. For this reason it's not ideal, but it can work, and it requires minimal knowledge about the programming language and tools used on the part of your designers.
Anything that involves me writing HTML or CSS. I'm bad at those.
These are the working relationships I've worked with so far, the common theme is that the more your designer knows about your tools and languages the better (HTML is good, Django templates is better, being able to actually read a model definition is best).