Я знаю, что уже немного поздно, но я нашел это полезной отправной точкой, поэтому я подумал, что другие тоже могут извлечь пользу из того, что я нашел.
Для небольшого файла, если вы поместите файл json в шаблонпапку, django может найти ее, и вы можете вернуть ее с помощью render_to_response
:
return render_to_response(data_file,mimetype='application/json')
Я обнаружил, что это проблематично для больших наборов данных в определенных браузерах.Я бы получил ошибку An existing connection was forcibly closed by the remote host
.Альтернативный подход исправил это.
Сначала вы должны создать полный путь к вашему файлу.Используйте переменную PROJECT_ROOT (определяется PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
в settings.py).Для доступа к этому и методам os вы должны import settings, os
в views.py.Если у вас есть это местоположение файла, вы можете вернуть его, используя код ниже:
backup_path = os.path.join(settings.PROJECT_ROOT, "templates", "json_dumps", "large_file.json")
return HttpResponse(open(backup_path, 'r'),content_type = 'application/json; charset=utf8')
Я обнаружил, что это работает хорошо даже для очень больших файлов.