Как передать объект файла CSV в ответ сокола - PullRequest
0 голосов
/ 01 марта 2019
csv_file = "test.csv"
with open(csv_file, 'w') as csvfile:
    writer = csv.DictWriter(csvfile, fieldnames=csv_columns)
    writer.writeheader()
    writer.writerows(response_data)
    csvfile.close()

Здесь мы создали файл CSV локально.Сейчас мы пытаемся создать и загрузить файл с помощью сокола.Как я могу передать объект файла CSV в ответ сокола?

1 Ответ

0 голосов
/ 02 марта 2019

Вы можете использовать свой 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 для обслуживания каталога.

...