Seite 1 von 1

Konfigurations-Daten im kompletten Programm Verfügbar stell

Verfasst: Donnerstag 21. Januar 2010, 16:37
von lubb
Die Frage kann ich auch die session in eine einfache QT-Anwendung anwenden?

Beschreibung:
für die Login der mySQL-DB möchte ich die LogIn-Daten zwischenspeichern und an andere Stelle wieder abrufen, um eine SQL-Statement auszuführen!

Ablauf:
1) ich habe ein Login Masske in MainFenster wenn der User sich erfolgreich angemeldet hat gelangt er im Hauptmenü.

2) im Hauptmenü kann der User eine Anwendung auswählen, nach dem Auswahl erschien ein KindFenster für die ausgewählte Anwendung.

3)im Prinzip sind die Auswahl Anwendungen im Hauptmenü um SQL-Anweisungen (select, update,..) auszuführen.

4)um die SQL-Anweisungen auszuführen brauche ich die LogIn-Daten vom Loginmasske.

Code: Alles auswählen

MainFenster

from clsImport   import clsImport     


class clsLogin(QtGui.QMainWindow):
    """Diese Klasse stellt das Hauptfenster dar"""
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        uic.loadUi("guiLogin.ui",self)
        self.connect(self.onLogin, QtCore.SIGNAL("clicked()"), self.onLoginFunc)
        self.connect(self.onImport , QtCore.SIGNAL("clicked()"),  self.onImportFunc)

       .........
       .........

    def onLoginFunc(self):
       
        user     = (str(self.lineEditUser.text())).strip()
        password = (str(self.lineEditPass.text())).strip()
        server   = (str(self.lineEditServer.text())).strip()
        db       = (str(self.lineEditDB.text()).strip())

       .........
       .........

    def onImportFunc(self):
        dI = clsImport()
        dI.exec_()

Code: Alles auswählen

KindFenster

from PyQt4  import QtGui , QtCore ,uic

class clsImport(QtGui.QDialog):
    """Diese Klasse stellt ein Kindfenster dar"""
    def __init__(self):
        QtGui.QDialog.__init__(self)
        uic.loadUi("guiImport.ui",self)
   
        # Event einrichten
    self.connect(self.onImport, QtCore.SIGNAL("clicked()"), self.onImportFunc)


       .........
       .........

    def onImportFunc(self):
          connection = MySQLdb.connect("****", "****", "****", "****")

Mit dem Programm möchte ich aus DB-Tabellen CSV erstellen und CSV in DB-Tabellen importieren.

damit der User das Programm nutzen kann muss er mit seiner SQL-Server-LogIn-Daten im System anmelden, diese Login-daten brauche ich wieder wenn eine SQL-Abfarge ausgeführt werden soll.

so wie kann ich die logindaten aufbewahren und beliebig im Programm aufrufen

Verfasst: Donnerstag 21. Januar 2010, 16:43
von Hyperion
Glaubst Du allen Ernstes, dass Du mit cross-Postings innerhalb dieses Boards schneller eine Antwort erhältst? Du hattest doch schon ein Posting dazu im Datenbank-Forum.

Generell hat das alles auch weniger mit Datenbanken zu tun, weswegen das Allgemeine-Forum vermutlich schon ein geeigneterer Ort ist - aber wieso eröffnest Du einen neuen Thread und änderst nicht den Titel des alten? (Kann man das?)

Zudem: Code-tags für Python existieren ;-)

Zur Lösung: Du musst Dir die Daten eben in einem Objekt merken und an die entsprechenden Code-Abschnitte übergeben, wo sie erneut gebraucht werden.

Code: Alles auswählen

def get_login_data():
    user = raw_input("Username")
    # für echte anwendungen natürlich getpass aus dem getpass-Modul ;-)
    password = raw_input("Password")
    return user, password


def foo(login):
    print login


def bar(login):
    print login


def main():
    login = get_login_data()
    foo(login)
    bar(login)
Das ganze kann man natürlich ggf. noch schöner kapseln. Aber prinzipiell sollte das so umzusetzen sein.

Verfasst: Donnerstag 21. Januar 2010, 16:44
von EyDu
Hallo.

Schau dir mal MVC an. Ganz ganz grob ausgedrückt: Vermische deine GUI nicht mit Logik. Also das genau Gegenteil von dem was du gerade betreibst ;-)

Sebastian

Verfasst: Donnerstag 21. Januar 2010, 16:59
von lubb
Wäre die Lösung eine klasse die sämtliche daten speichert und so an verschiedenen Klassen des Programm vererbt

Verfasst: Donnerstag 21. Januar 2010, 17:09
von EyDu
Nein.

Ich erweitere meine Empfehlung MVC mal um OOP.

Verfasst: Freitag 22. Januar 2010, 09:38
von lubb
EyDu hat geschrieben:Nein.

Ich erweitere meine Empfehlung MVC mal um OOP.
Danke EyDu, habe gestern Abend in ruhe überlegt was du mit MVC Empfehlung meinst, und jooooooooooo genau

mit einfachen parameter übergabe bei der erzeugung der KindWindow

läuft einwandfrei und sehr simple


ich bedanke mich für eure Hilfe und die präzise Lösungsvorschlage
Lubb