要在Flask上将Postgres Table导出为CSV文件并提供下载按钮,可以按照以下步骤进行:
@app.route
装饰器来定义路由。@app.route('/export-csv', methods=['GET'])
def export_csv():
# 代码逻辑将在这里实现
pass
import csv
import psycopg2
@app.route('/export-csv', methods=['GET'])
def export_csv():
conn = psycopg2.connect(database="your_database", user="your_username", password="your_password", host="your_host", port="your_port")
cursor = conn.cursor()
# 执行查询语句,获取需要导出的数据
cursor.execute("SELECT * FROM your_table")
# 获取查询结果
results = cursor.fetchall()
# 关闭数据库连接
cursor.close()
conn.close()
import csv
import psycopg2
@app.route('/export-csv', methods=['GET'])
def export_csv():
conn = psycopg2.connect(database="your_database", user="your_username", password="your_password", host="your_host", port="your_port")
cursor = conn.cursor()
# 执行查询语句,获取需要导出的数据
cursor.execute("SELECT * FROM your_table")
# 获取查询结果
results = cursor.fetchall()
# 关闭数据库连接
cursor.close()
conn.close()
# 创建CSV文件并写入数据
with open('data.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerows(results)
send_file
函数来发送文件。from flask import send_file
@app.route('/export-csv', methods=['GET'])
def export_csv():
# ...上述代码省略
# 创建CSV文件并写入数据
with open('data.csv', 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerows(results)
# 发送CSV文件供用户下载
return send_file('data.csv', as_attachment=True, attachment_filename='data.csv')
完成以上步骤后,用户访问/export-csv
路由时将会下载一个名为data.csv
的CSV文件,其中包含Postgres Table中的数据。
请注意,这只是一个简单的示例,你可能需要根据实际情况进行适当的修改和优化。另外,使用psycopg2
进行数据库连接和查询是一个示例,并不是强制要求,你可以选择其他适合你的方式。
领取专属 10元无门槛券
手把手带您无忧上云