@stayHARD

Экспорт csv из базы данных django/subprocess?

Добрый день.
Нужно сделать что-бы при клике на кнопку вся информация из БД экспортировалась в csv и он скачивался.
Вьюха:
def export_view(request):
	"""
	Export a csv file with data from database.
	"""
	subprocess.call('python to_csv.py', shell = True)
	f = open('output.csv', 'r')
	response = HttpResponse(f, content_type='application/force-download')
	response['Content-Disposition'] = 'attachment; filename=' + 'output.csv'
	return response

to_csv.py
import pandas as pd
import sqlite3
import os
import subprocess

subprocess.call("rm output.csv", shell = True)
con = sqlite3.connect("db.sqlite3")
df = pd.read_sql("SELECT * FROM app_contacts", con)
df.to_csv('output.csv', index=False, encoding='utf-8')


На локальном компьютере без virtualenv все работает прекрасно. Пытаюсь перенести на сервер с созданным виртуальным окружением и там ничего не происходит. Вернее файл скачивается, но он старый. Тоесть команда rm не сработала. Права есть ручками из консоли все получается.
Как можно получше сделать?
  • Вопрос задан
  • 1424 просмотра
Пригласить эксперта
Ответы на вопрос 1
svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺
А to_csv.py точно выполняется? Я не очень понял, зачем вообще subprocess.call() использовать? Почему бы этот код не засунуть во вьюху? И почему бы не удалять с помощью os.remove()
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы