2016-08-15 2 views
0

私はアマチュアプログラマーだと主張することが重要です。 pythonで個人的なソフトウェアを構築wxPython、インポートされたクラスのフィールドを使用

/wxPythonのは、MySQL DB

に私の問題を接続:

をインポートされたファイルからクラスにアクセスする1つのフォームを作成しようと。 フォームは、データベース上の関連する4つのテーブルにいつでもアクセスします。

これらのテーブルのうちの3つは常に同じです。 4番目のテーブルは2つのテーブルのいずれかになります。

常にアクセスされるテーブル:セッション、心臓され変動し得る テーブル注:私は上記のテーブルのそれぞれについてwx.Panelクラスのデータフィールドを配置した物理的または機械

は。 mainFormのメニューでは、物理または機械のパラメータへの参照を含む入力フォームが呼び出されます。適切なフォームがデータフィールドと共に表示されます。

私の問題は、これらのインポートされたフィールドにアクセスして、データベースからデータをロードできないことです。私のコードの

セクション:

のMainForm:dailyResultsV2.py

import inputForm as IF 

# Menu Event: 

デフOnShowBikeRecs(自己、イベント):

self.bikeedit = IF.inputForm(None, -1, "Bike Record Management", size=(925,650), name="bike") 
    self.bikeedit.Show() 
    self.bikeedit.Center() 

というフォーム:inputForm.py

class inputForm(wx.Frame): 
def __init__(self, parent, *args, **kwargs): 
    wx.Frame.__init__(self, parent, *args, **kwargs) 

    self.EXERCISE = kwargs['name'] 


    # create a panel 
    self.panel = wx.Panel(self) 
    self.panel.BackgroundColour = (200, 230, 250) 
    self.filterSetup() 
    self.sessionSection = IFC.tblSession(self.panel,-1) 
    self.sessionSection.BackgroundColour = (200, 230, 250) 
    if self.EXERCISE == 'walk': 
     self.physicalSection = IFC.tblPhysical(self.panel,-1) 
    else: 
     self.machineSection = IFC.tblMachine(self.panel,-1) 

    self.cardioSection = IFC.tblcardio(self.panel,-1) 
    self.notesSection = IFC.tblNotes(self.panel,-1) 
    self.buttonSetup() 
    self.topsizer() 

プレコートedingクラスは、物理テーブルまたはマシンテーブルのすべてのフィールドを含む入力フォームを作成します。

私の問題は、データベースからデータを追加したりデータベースを更新するためにこれらのフィールドにアクセスする方法です。 (これは物理的なトレーニングデータベースです。 self.machineType_tcを私のフォーム上:私は、例えば、アクセス方法にinputFormClasses.py

class tblMachine(wx.Panel):  
def __init__(self, parent, *args, **kwargs): 
    wx.Panel.__init__(self, parent, *args, **kwargs) 

    self.BackgroundColour = (200, 230, 250) 

    # The columns 
    # machine_ID - not displayed  machine_session_FK - not displayed  machine_level - not displayed 
    # machine_Type_FK machine_Distance machine_AvgSpeed machine_MaxSpeed  machine_Duration  machine_ODO  machine_RunFK - ComboBox   

    self.runNames = []  # ComboBox List 

    self.machineLabel_st = wx.StaticText(self, -1, "Machine", style=wx.ALIGN_LEFT) 
    self.machineType_st = wx.StaticText(self, -1, "Type", style=wx.ALIGN_LEFT) 
    self.machineType_tc = wx.TextCtrl(self, -1, value="Biking", style=wx.TE_CENTRE) 
    self.machineDistance_st = wx.StaticText(self, -1, "Distance", style=wx.ALIGN_LEFT) 
    self.machineDistance_tc = wx.TextCtrl(self, -1, style=wx.TE_CENTRE) 
    self.machineAvgSpeed_st = wx.StaticText(self, -1, "Avg. Speed", style=wx.ALIGN_LEFT) 
    self.machineAvgSpeed_tc = wx.TextCtrl(self, -1, style=wx.TE_CENTRE) 
    self.machineMaxSpeed_st = wx.StaticText(self, -1, "Max Speed", style=wx.ALIGN_LEFT) 
    self.machineMaxSpeed_tc = wx.TextCtrl(self, -1, style=wx.TE_CENTRE) 
    self.machineDuration_st = wx.StaticText(self, -1, "Duration", style=wx.ALIGN_LEFT) 
    self.machineDuration_mtc = masked.TimeCtrl(self, -1, fmt24hr=True) 
    self.machineODO_st = wx.StaticText(self, -1, "Odometer", style=wx.ALIGN_LEFT) 
    self.machineODO_tc = wx.TextCtrl(self, -1, style=wx.TE_CENTRE) 
    self.machineRun_st = wx.StaticText(self, -1, "Run", style=wx.ALIGN_LEFT) 
    self.machineRun_cbo = wx.ComboBox(self, -1, choices = self.getRunNames(self.runNames), style=wx.CB_READONLY) # get the list of runs for comboBox 

    # create machine sizer 
    self.MachineSizer = wx.GridBagSizer(hgap=5, vgap=5) 

:インポートされたクラスの

例?

+0

入力用のLanceです。すみませんでした。私はデータベースへのアクセスに問題はありません。私の問題は、プログラムされたデータ形式にアクセスすることでした。私は自分の問題を解決したと信じています。クラス内の特定の変数にアクセスするには、そのクラスをインスタンス化した変数で制御変数名の前に接頭辞を付ける必要があります。 (私はこの権利を言って願っています) –

答えて

0

sqlite3のライブラリをチェックアウト:私は似た何かをするためにそれを使用:

import sqlite3 
def insert_user(cursor,username,password,port,steps,lat,long): 
    try:  
     cursor.execute("INSERT INTO mydb VALUES(?,?,?,?,?,?)",   (username,password,port,steps,lat,long)) 
     return "Success" 
    except Exception as e: 
     print e 
     return "Failure" 

私はこのことができます願っています。

関連する問題