2017-07-27 68 views
0

我试图按照https://github.com/talpor/django-dashing/使用django-dashing的指示来实现仪表板。从MySQL中提取数据以使用python在仪表板上显示django-dashing

到目前为止,我已经成功地定制了自己的小部件,并在自己的Web服务器上显示了一些随机数据,而如果我想从数据库(MySQL)中抽出一些真实数据并显示,我不知道从哪里开始。 (如在哪里做数据库连接,等..)

任何人都可以告诉我我应该遵循执行它的步骤?

回答

0

如果它仍然相关,您可以先用sqlalchemy连接到数据库。

import sqlalchemy as sq 
from sqlalchemy.engine import url as sq_url 

db_connect_url = sq_url.URL(
      drivername='mysql+mysqldb', 
      username=DB_username, 
      password=DB_password, 
      host=DB_hostname, 
      port=DB_port, 
      database=DB_name, 
     ) 
engine = sq.create_engine(db_connect_url) 

从那里你可以通过检查引擎上的可用方法来操作数据。我通常做的就是在这种情况下使用熊猫。

import pandas as pd 
df = pd.read_sql_table(table_name, engine) 
0

我也不得不这样做最近....我设法让它排序 - 但它有点笨重。

我在一个单独的项目中创建了一个单独的CherryPy REST Api。入口点看起来像

@cherrpy.expose 
def web_api_to_call(self, table,value): 
    #Do SQL Query 
    return str(sql_table_value) 

然后在Django中创建一个新的应用程序,然后创建一个Widget.py。在Widget.py里面我写了这样的东西。

import requests 
class webquery(NumberWidget): 
    classparams=[("widget1","web_api_to_call","table","values"), 
       ("widget2","web_api_to_call","table2","values2"), 
       ("widget3","web_api_to_call","table3","values3")] 

    def myget(self): 
     for tup in self.classparams: 
      if tup[0]==type(self).__name__: 
       url=tup[1] 
       table=tup[2] 
       value=tup[3] 
      url = "http://127.0.0.1:8000/"+url 

     # Do Web Call Error Checking Omitted 
     return requests.get(url,params={"table":table,"values":value)}).text() 

    def get_value(self): 
     #Override default 
     return self.my_get() 

#Now create new Widgets as per the static definition at the top 

class widget1(web query): 
    id=1 

class widget2(web query): 
    id=1 

class widget3(web query): 
    id=1 

现在只需要添加新部件 - 像往常一样在urls.py,然后潇洒的-config.js和你做。

希望这可以帮助别人。

相关问题