В моем экземпляре EC2, на котором работают Nginx и Gunicorn, у меня также есть несколько файлов json в каталоге. В конечном итоге я хочу, чтобы DRF мог вернуть объект Response с указанным файлом json, расположенным в этом каталоге.
Вот что я думаю, что я должен сделать: Когда пользователь что-то щелкает, метод onClick вызывает fetch(), и я передаю, скажем, «api/jsonfiles», а также номер файла, который мне нужен. urls.py будет иметь путь ('api/jsonfiles/', views.JsonFileGetter). В классе JsonFileGetter в views.py мне интересно, как я могу получить доступ к запрошенному файлу и вернуть объект Response, содержащий данные?





Вы должны сделать это следующим образом:
1- Сначала, как вы сказали, создайте onClick для fetch(), например, DRF Api, например api/jsonfiles
2- На стороне django создайте urls.py и назначьте ему класс представлений.
3- и в вашем классе должно быть например так
# urls.py
path('jsonfile/<filename>/', JSONFileView.as_view(), name='file_retrieve'),
# Views.py
class JSONFileView(APIView):
def get(self, request, filename):
root_path = "Put root folder of files"
file_path = os.path.join(root_path, filename)
with open(file_path, 'r') as jsonfile:
json_data = json.loads(jsonfile)
return Response(json_data)
Это зависит от того, хотите ли вы получить содержимое файла json (как если бы это был вывод json, созданный DRF) или хотите ли вы обслуживать файлы json, как и с файлами любого типа. См. этот ответ для эффективной загрузки файлов с помощью Django: stackoverflow.com/questions/1156246/…