A am using Flask and I want to generate a csv file using a Jinja2 template. According to the Jinja2 documentation
A Jinja template is simply a text file. Jinja can generate any text-based format (HTML, XML, CSV, LaTeX, etc.). A Jinja template doesn’t need to have a specific extension: .html, .xml, or any other extension is just fine.
The problem is that Jinja2 is very proficient at inserting whitespace and line-breaks and these kind of ruin the csv output which should just be a file of records each record being a list of comma-separated values.
I need to use Jinja2 rather than the csv module because all the data I need is already stored in a data object designed to feed to Jinja2 (I usually generate HTML but sometimes JSON and now I want to generate csv).
Here is my template, note that dp is a "data page" object and contains the headers and values.
{% set g = namespace(comm0 = '', comma = '') %}
{# Header #}
{% for ix in range(dp.field_count) -%}
    {{ g.comm0 }}
    "{{ dp.fields[ix].label }}"
    {% set g.comm0 = ', ' %}
{%- endfor %}
{# Rows #}
{% for record in dp.records -%}
    {% set g.comma = '' %}
    {% for ix in range(dp.field_count) -%}
        {{ g.comma }}
        "{{ record.row[ix].value }}"
        {% set g.comma = ', ' %}
    {%- endfor %}
{%- endfor %}
And here is what the output looks like (already with some whitespace eliminated by using the - symbol).
    "Staff Type"
    , 
    "Item"
    , 
    "Billable?"
    , 
    "Description"
    , 
    "Hourly Rate"
    , 
    "Date Changed"
    , 
    "Tag"
        "AC"
        , 
        ""
        , 
        "-1"
        , 
        "Associate Consultant"
        , 
        "20"
        , 
        ""
        , 
        ""
        "ACS"
        , 
        ""
        , 
        "-1"
        , 
        "Consultant"
        , 
        "29"
        , 
        ""
        , 
        ""
        "ADMIN"
        , 
        ""
        , 
        "0"
        , 
        "Administration"
        , 
        "20"
        , 
        ""
        , 
        ""
And here is what a csv should look like.
"Staff Type" ,  "Item" ,  "Billable?" ,  "Description" , "Hourly Rate" , "Date Changed", "Tag"
"AC", "", "-1", "Associate Consultant",  "20", "", ""
"ACS", "", "-1", "Consultant", "29", "", ""
"ADMIN", "", "0", "Administration", "20", "", ""
So how do I eliminate the line breaks within a record, and put a line break at the end of each record, and get rid of the remaining unnecessary whitespace.
