2017-07-27 4 views
0

https://github.com/talpor/django-dashing/の指示に従ってdjango-dashingを使ってダッシュボードを実装しようとしました。MySQLからデータを引き出してPython django-dashingを使ってダッシュボードに表示

これまでのところ私のウィジェットをカスタマイズして自分のWebサーバーにいくつかのランダムなデータを表示していましたが、実際のデータをDB(MySQL)から取り出して表示したい場合はどこから始めるべきか分かりません。 (DBの接続先など)

私はそれを実装する必要がありますか?

答えて

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の中だろうと、あなたが行っているよう。

これは誰かを支援します。

関連する問題