将多个响应传递给D3.csv函数

时间:2019-06-20 10:42:20

标签: python django d3.js

我有一个D3js网站并正在运行。我遵循的方法是从AWS S3获取文件并创建url模式,然后将其与d3.csv函数一起使用。加载所有可视化文件花费了太多时间,因为它五次达到AWS S3来获取5种不同的CSV作为数据源。

views.py的示例代码如下-

  'abc@test.com;xyz@test.com;pqr@test.com;cba@test.com;zyx@test.com;klm@test.com' 

我已经为用作仪表板数据源的5个文件创建了5个函数。

urls.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个网址格式。

具有d3.csv功能的javascript文件-

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)

此处要求获取具有相同功能的存储桶的所有csv文件,以便我们不再希望再次按下S3。这意味着我们需要为每个csv返回多个响应。另外,我们如何为所有CSV创建多个urlpattern以及如何在不同javascript文件的d3.csv函数中传递它们。请帮忙。

0 个答案:

没有答案