如何使用 d3.js 从 postgresql 获取数据

Viv*_*nda 2 python postgresql psycopg2 d3.js

之前我使用CSV来存储数据,然后制作图表。但现在我想知道如何使用d3.js从PostgreSQL获取数据。

如果有人知道请帮助我,我是 PostgreSQL 的全新用户。

import psycopg2
import sys
from  flask import Flask,render_template
import os

os.chmod("/home/dell/Charts/static/data/data.csv", 0o777)
con = None
con = psycopg2.connect("host='localhost' dbname='mydb' user='postgres' password='Password'")  
cur = con.cursor()

cur.execute("""COPY data_lc TO '/home/dell/Charts/static/data/data.csv' DELIMITER ',' CSV HEADER;""")

cur.close()
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常

但我想知道有没有办法通过D3.js直接从PostgreSQL获取数据

html代码

<div class="panel panel-default">
    <div class="panel-heading">
        <h4>LineChart</h4>
    </div>
    <div class="panel-body">
        <div id="linechart"></div>
    </div>
</div>
<script src="static/js/Linechart.js"></script>
Run Code Online (Sandbox Code Playgroud)

Bru*_*llo 5

您需要在flask中创建一个视图来查询数据库并将结果作为json返回

import psycopg2
import sys
from  flask import Flask,render_template
from flask import jsonify

@app.route('/data')
def send_data():
    con = psycopg2.connect("host='localhost' dbname='mydb' user='postgres' password='Password'")  
    cur = con.cursor()
    cur.execute("""select * from  data_lc""")
    data = [col for col in cur]
    cur.close()
    return jsonify(data)
Run Code Online (Sandbox Code Playgroud)

然后使用 d3 你可以调用 url

d3.json("https://your_flas_kapp.com/data").then(...)
Run Code Online (Sandbox Code Playgroud)