2012-11-08 28 views
6

Dường như tất cả các biểu đồ ví dụ D3 đều lấy tệp .csv hoặc .tsv bên ngoài làm dữ liệu đầu vào. Có cách nào để sửa đổi mã để lấy dữ liệu từ một biến trong Django. Giả sử {{data}} có định dạng JSON, làm cách nào bạn triển khai điều này trong biểu đồ như http://bl.ocks.org/3885304 hoặc http://bl.ocks.org/3887051? Tôi đang cố gắng tránh luôn viết một tệp .csv.Nhập dữ liệu trực tiếp từ Django cho biểu đồ D3

+1

https://github.com/mbostock/d3/wiki/Requests#wiki-d3_json – Martin

+0

Nếu tôi đang sử dụng d3.json, URL và gọi lại là gì? – ono

+0

Tôi hiểu lầm câu hỏi của bạn, tôi nghĩ bạn muốn phục vụ nó như là json sử dụng http. Xem câu trả lời của tôi để biết chi tiết. – Martin

Trả lời

5

Bạn luôn có thể tạo chế độ xem sẽ phục vụ tệp csv động sẽ được D3 tiêu thụ. Cách này cũng sẽ cho phép người dùng tải xuống dữ liệu trong trường hợp họ cần dữ liệu thô thay vì biểu đồ.

def foo(request, ...): 
    model = get_object_or_404(Foo, ...) 
    data = model.get_data() # should return csv formatted string 
    return HttpResponse(data, content_type='text/csv') 
+1

Nếu bạn đang làm điều này rất nhiều xem xét một api như ngon https://github.com/toastdriven/django-tastypie – PhoebeB

+1

Ngoài ra, tôi đồng ý với csv Miki725 lại. Sau khi phục vụ cả csv và json để d3 từ django, tôi bây giờ gắn bó với csv vì có một số công cụ tốt như d3.nest và crossfilter để tinh chỉnh các lựa chọn và csv nhỏ hơn để chuyển hơn json. – PhoebeB

5

Thay vì dữ liệu tải không đồng bộ (ajax-style), bạn có thể sử dụng định dạng đúng JSON trong một chuỗi truyền cho tag biến mẫu của bạn và |safe d.

Kiểm tra ví dụ làm việc http://bl.ocks.org/4040034 mà là dựa trên http://bl.ocks.org/3885304

Bạn cũng nên kiểm tra các câu hỏi liên quan về SO, có tấn về đề tài này.

+0

Biểu đồ đó là thứ tôi đang tìm kiếm. {{Data}} của tôi chính xác là định dạng của dữ liệu var, là JSON. Tôi có thể thay thế dữ liệu của mình bằng var data = {{data}} không? Nó dường như không hoạt động. – ono

+2

Đã sửa lỗi. {{data | safe}} – ono

+1

Chìa khóa là 'an toàn' để bỏ qua việc thoát khỏi chuỗi mặc định của django. – hobs

Các vấn đề liên quan