Передача нескольких ответов в функцию D3.csv - PullRequest
0 голосов
/ 20 июня 2019

У меня есть сайт D3js, работающий и работающий.Подход, который я использую, заключается в получении файлов из aws S3 и создании шаблонов URL, а затем их использовании с функциями d3.csv.Загрузка всех визуализаций занимает слишком много времени, потому что он использует AWS S3 пять раз, чтобы получить 5 различных CSV-файлов в качестве источника данных.

пример кода для views.py приведен ниже -

def func1(request):
    LOCAL_PATH = '/var/www/dashboard/templates/graph/'
    AWS_ACCESS_KEY_ID = '*********'
    AWS_SECRET_ACCESS_KEY = '***********'

    bucket_name = 'bucket_name'
    # connect to the bucket
    conn = boto.connect_s3(AWS_ACCESS_KEY_ID,
                    AWS_SECRET_ACCESS_KEY)
    bucket = conn.get_bucket(bucket_name)
    # go through the list of files
    bucket_list = bucket.list()
    for l in bucket_list:
        keyString = str(l.key)
        if os.path.exists(LOCAL_PATH+keyString):
            os.remove(LOCAL_PATH+keyString) #this deletes the file
        l.get_contents_to_filename(LOCAL_PATH+keyString)

    csv_data = open('/var/www/dashboard/templates/graph/file1.csv', 'r+').read()

    response = HttpResponse(csv_data,content_type='text/csv')
    return response

Я создал 5 функций для 5 файлов, которые я использовал в качестве источника данных для своей панели.

код urls.py -

urlpatterns = [
    path('', views.graph, name='graph'),
    path('func1/', views.func1, name='func1')   
]+ static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
urlpatterns = format_suffix_patterns(urlpatterns)

Я добавил 5 шаблонов URL для всех файлов.

javascript-файл с функцией d3.csv -

d3.csv("/func1/", function(data) {
   freqData = data.map(function(d) { return {
        hour: d.hour, 
        freq: {
            val1: +d.val1,
            val2: +d.val2,
            val3: +d.val3,
            val4: +d.val4
        }}
    });
  dashboard('#id',freqData);
});

Требуется, чтобы все csv-файлы bucket были в одной функции, чтобы мы не хотели снова нажимать S3.Это означает, что нам нужно возвращать несколько ответов для каждого CSV.Также, как мы можем создать несколько шаблонов urlpattern для всех CSV и как передать их в функцию d3.csv в разных файлах javascript.Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...