Sql 我想将Postgres表作为CSV文件导出为Flask上的下载按钮。怎么做?

Sql 我想将Postgres表作为CSV文件导出为Flask上的下载按钮。怎么做?,sql,postgresql,flask,Sql,Postgresql,Flask,我的PSQL上有一个表,我想将它作为可下载文件导出给任何单击下载按钮的用户,因此我的路径是不固定的。复制命令在这里对我不起作用。有什么解决办法吗 @app.route("/") @roles_required('member') def index(): return render_template("pages/index.html") @app.route("/download_csv") @roles_required(

我的PSQL上有一个表,我想将它作为可下载文件导出给任何单击下载按钮的用户,因此我的路径是不固定的。复制命令在这里对我不起作用。有什么解决办法吗

@app.route("/")
@roles_required('member')
def index():
    return render_template("pages/index.html")

@app.route("/download_csv")
@roles_required('member')
def download_csv():
    conn = None
    cursor = None

    try:
        conn = psycopg2.connect("host=localhost dbname=db user=u password=p")

        cursor = conn.cursor()
  
        cursor.execute('SELECT id FROM table')
        # conn.commit()
        result = cursor.fetchall()  # fetchone()

        output = io.StringIO()
        writer = csv.writer(output)

        line = ['column1,column2']
        writer.writerow(line)

        for row in result:
            line = [row[0] + ' , ' + row[1] + ' , ']
            writer.writerow(line)

        output.seek(0)

        return Response(output, mimetype="text/csv",
                        headers={"Content-Disposition": "attachment;filename=report.csv"})
    except Exception as e:
        print(e)
    finally:
        cursor.close()
        conn.close()
index.html

...

    <a href="{{ url_for('app.download_csv') }}" style="margin-bottom: 10px; margin-left: 10px;" class="btn btn-primary" type="button">
                        Download Csv  <i class="fa fa-file-csv"></i>
                    </a>

...
。。。
...