Возникновение проблемы при экспорте csv-файла в django

Я экспортирую CSV-файл на фронтенде, когда пользователь нажимает на кнопку загрузки, но иногда я получаю пустой файл, а иногда получаю именно тот файл, который мне нужен. Это происходит только при развертывании приложения.

Функция, которая все это делает, это : (список_каналов содержит список словарей, в которых 'url' является ключом)

def exportfile(request):


    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'attachement; filename="channelUrls.csv"'

    writer = csv.writer(response)
    
    for list in channel_list:
        writer.writerow([list['url']])
    channel_list.clear()
    return response

Функция, которая вставляет данные в список каналов, следующая :

channel_list = []

def home(request):
    context = {'message' : ""}
    if request.method == 'POST':
        rows = []
        video_id = []
        file = request.FILES["file"].readlines()

        for f in file:
            rows.append((f.decode('utf-8')))
        

        for row in rows[0:len(rows)-1]:
             video_id.append((row[-13:]))
        video_id.append((rows[len(rows)-1][-11:]))

        video_id = [x.replace("\r\n","") for x in video_id]


        search_url = 'https://www.googleapis.com/youtube/v3/videos'

        parameter = {
            'key' : settings.YOUTUBE_DATA_API_KEY,
            'part' : 'snippet',
            'id' : ','.join(video_id)
        }

        data = requests.get(search_url,params=parameter)
        results = data.json()['items']

        temp_list = []

        for result in results:
            data = {
                'name' : result['snippet']['channelTitle'],
                'url' :  f'https://www.youtube.com/channel/{ result["snippet"]["channelId"] }'
            }
            temp_list.append(data)
        
        [channel_list.append(x) for x in temp_list if x not in channel_list]
        
        
        context['message'] = "Click on Download File to download the file"

    return render(request,'index.html',context)

Полный код файла views.py :

from urllib import response
from django.shortcuts import render,HttpResponse
from django.conf import settings
import requests
import csv

channel_list = []

def home(request):
    context = {'message' : ""}
    if request.method == 'POST':
        rows = []
        video_id = []
        file = request.FILES["file"].readlines()

        for f in file:
            rows.append((f.decode('utf-8')))
        

        for row in rows[0:len(rows)-1]:
             video_id.append((row[-13:]))
        video_id.append((rows[len(rows)-1][-11:]))

        video_id = [x.replace("\r\n","") for x in video_id]


        search_url = 'https://www.googleapis.com/youtube/v3/videos'

        parameter = {
            'key' : settings.YOUTUBE_DATA_API_KEY,
            'part' : 'snippet',
            'id' : ','.join(video_id)
        }

        data = requests.get(search_url,params=parameter)
        results = data.json()['items']

        temp_list = []

        for result in results:
            data = {
                'name' : result['snippet']['channelTitle'],
                'url' :  f'https://www.youtube.com/channel/{ result["snippet"]["channelId"] }'
            }
            temp_list.append(data)
        
        [channel_list.append(x) for x in temp_list if x not in channel_list]
        
        
        context['message'] = "Click on Download File to download the file"

    return render(request,'index.html',context)

def exportfile(request):


    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'attachement; filename="channelUrls.csv"'

    writer = csv.writer(response)
    
    for list in channel_list:
        writer.writerow([list['url']])
    channel_list.clear()
    return response
Вернуться на верх