2016-06-02 11 views
1

どのようにオブジェクト指向プログラミングからPythonでmysqlにデータを渡すことができますか?すべてのクラスで接続する必要がありますか?オブジェクト指向プログラミングからmySQLへデータを取得するには?

アップデート:

は、これは私のオブジェクトは、

class AttentionDataPoint(DataPoint): 
    def __init__ (self, _dataValueBytes): 
     DataPoint._init_(self, _dataValueBytes) 
     self.attentionValue=self._dataValueBytes[0] 

    def __str__(self): 
     if(self.attentionValue): 
      return "Attention Level: " + str(self.attentionValue) 

class MeditationDataPoint(DataPoint): 
    def __init__ (self, _dataValueBytes): 
     DataPoint._init_(self, _dataValueBytes) 
     self.meditationValue=self._dataValueBytes[0] 

    def __str__(self): 
     if(self.meditationValue): 
      return "Meditation Level: " + str(self.meditationValue) 

をorintedであり、私はこのコーディングを使用してMySQLにデータを取得しよう。

import time 
import smtplib 
import datetime 
import MySQLdb 

db = MySQLdb.connect("192.168.0.101", "fyp", "123456", "system") 
cur = db.cursor() 

while True: 
    Meditation_Level = meditationValue() 
    Attention_Level = attentionValue() 
    current_time = datetime.datetime.now() 

    sql = "INSERT INTO table (id, Meditation_Level, Attention_Level, current_time) VALUES ('test1', %s, %s, %s)" 
    data = (Meditation_Level, Attention_Level, current_time) 
    cur.execute(sql, data) 
db.commit() 

db.close() 

更新:

のDataPoint

class DataPoint: 
def __init__(self, dataValueBytes): 
self._dataValueBytes = dataValueBytes 
+0

あなたはあなたの接続を再利用することができます(そして、あなたがしなければならない)、:

pythonのための最も人気がSQLAlchemyのです。あなたのコードを示してください。 – Raptor

+0

@Raptor私はすでにコードを更新しています。 – Hazim

+0

DataPointの定義は何ですか? – olivecoder

答えて

0

私は接続する機能を持つクラスのようなものを考えています、あなたはちょうどあなたが必要とするすべてのクラスに、そのクラスのインスタンスを渡します接続(ここではdbインスタンス)、またはされていない可能性があります! それは私が他の言語で使ったアイデアです。

0

いくつかのオプション:

  • は、各クラスのニーズに応じて選択/挿入/更新のSQLコマンドを構築するために、各のDataPoint子供のためのセーブ/ロード・メソッドを実装します。 Python MySQL Database Access
  • 上記のsqlコマンドをクラス属性から自動的に構築するクラスを実装します。
  • 上記のオブジェクトリレーショナルマッピングと呼ばれ、そう、あなたは車輪の再発明する必要はありませんされています。https://www.fullstackpython.com/object-relational-mappers-orms.html

それは大きなになるためのチャンスがないとの単純なプロジェクトであれば、私は最初に行くだろうそれ以外の場合はORMツールを使用します。当然の http://docs.sqlalchemy.org/en/latest/orm/tutorial.html

+0

これは単純なプロジェクトです。だから私は最初のオプションを使うと思う。私を助けるチュートリアルはありますか? – Hazim

関連する問題