Image.Source
在这里,我们已经在本地生成了CSV文件。现在,我们尝试使用falcon创建和下载文件。如何将CSV文件对象传递给猎鹰响应?
答案 0 :(得分:0)
您可以按以下方式提供CSV文件:
此外,如果您使用的是Falcon> = 1.4:
import falcon
import mimetypes
class StaticResource(object):
def on_get(self, req, resp):
csv_file_path = "test.csv"
resp.content_type = mimetypes.guess_type(csv_file_path)[0]
resp.stream, resp.stream_len = open(csv_file_path)
app = falcon.API()
app.add_route('/static', StaticResource())
如果您已经创建了文件,则创建文件对象:
import falcon
class StaticResource(object):
def on_get(self, req, resp):
csv_file_path = "test.csv"
resp.status = falcon.HTTP_200
resp.content_type = 'text/csv'
with open(csv_file_path, 'r') as f:
resp.body = f.read()
app = falcon.API()
app.add_route('/static', StaticResource())
如果您已经具有文件对象:
import falcon
class StaticResource(object):
def on_get(self, req, resp):
csv_file_path = "test.csv"
with open(csv_file_path, 'w') as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
writer.writeheader()
writer.writerows(response_data)
csvfile.close()
resp.status = falcon.HTTP_200
resp.content_type = 'text/csv'
resp.body = writer
app = falcon.API()
app.add_route('/static', StaticResource())
希望我能正确回答您的问题。另外,您可以参考此文档https://falcon.readthedocs.io/en/stable/api/api.html#falcon.API.add_static_route来提供目录。