MCPcopy
hub / github.com/coleifer/sqlite-web / export

Function export

sqlite_web/sqlite_web.py:1110–1141  ·  view source on GitHub ↗
(query, export_format, table=None)

Source from the content-addressed store, hash-verified

1108 return _query_view('table_query.html', table)
1109
1110def export(query, export_format, table=None):
1111 dataset = get_dataset()
1112 buf = StringIO()
1113 if export_format == 'json':
1114 kwargs = {'indent': 2}
1115 filename = 'export.json'
1116 mimetype = 'application/json'
1117 else:
1118 kwargs = {}
1119 filename = 'export.csv'
1120 mimetype = 'text/csv'
1121
1122 if table:
1123 filename = '%s-%s' % (table, filename)
1124
1125 # Avoid any special chars in export filename.
1126 filename = re.sub(r'[^\w\d\-\.]+', '', filename)
1127
1128 if peewee_version >= (4, 0, 2):
1129 kwargs['base64_bytes'] = app.config['BLOB_AS_BASE64']
1130
1131 dataset.freeze(query, export_format, file_obj=buf, **kwargs)
1132
1133 response_data = buf.getvalue()
1134 response = make_response(response_data)
1135 response.headers['Content-Length'] = len(response_data)
1136 response.headers['Content-Type'] = mimetype
1137 response.headers['Content-Disposition'] = 'attachment; filename="%s"' % (
1138 filename)
1139 response.headers['Expires'] = 0
1140 response.headers['Pragma'] = 'public'
1141 return response
1142
1143@app.route('/<table>/export/', methods=['GET', 'POST'])
1144@require_table

Callers 2

_query_viewFunction · 0.85
table_exportFunction · 0.85

Calls 1

get_datasetFunction · 0.85

Tested by

no test coverage detected