From 7938ec3591d4339da20da558825fe04138ce77b2 Mon Sep 17 00:00:00 2001 From: Michael Murtaugh Date: Wed, 6 Jun 2018 19:32:40 +0200 Subject: [PATCH] csv export --- app/views.py | 17 +++++++++++++++++ import_csv.py | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/app/views.py b/app/views.py index ccedbb1..acc2e22 100755 --- a/app/views.py +++ b/app/views.py @@ -394,6 +394,23 @@ def add_to_stack(id): db.session.commit() return render_template('show_stack_detail.html', stack=stack) +from csv import DictWriter +import io + +@app.route('/export/csv', methods=['GET']) +def export_csv (): + output = io.StringIO() + fieldnames = ['title', 'authors'] + csv = DictWriter(output,fieldnames) + csv.writeheader() + # for i in range(10): + # csv.writerow({'ID': i, 'fruit': "Tomato"}) + for book in Book.query.order_by("title"): + authors = ", ".join([x.author_name for x in book.authors]) + csv.writerow({"title": book.title, "authors": authors}) + resp = Response(output.getvalue(), mimetype="text/plain") + # resp.headers["Content-Disposition"] = "attachment;filename=export.csv" + return resp ### # The API ### diff --git a/import_csv.py b/import_csv.py index 9aa06d1..b43447d 100644 --- a/import_csv.py +++ b/import_csv.py @@ -39,7 +39,7 @@ with open(args.csv) as f: if stack: b = db.session.query(Stack).filter_by(stack_name=stack).first() if b == None: - b = Stack(stack_name=stack, stack_description=stack_description) + b = Stack(stack_name=stack, stack_description=None) db.session.add(b) book.stacks.append(b)