Konfigurations-Daten im kompletten Programm Verfügbar stell

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
lubb
User
Beiträge: 50
Registriert: Mittwoch 6. Januar 2010, 17:05

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
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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.
Zuletzt geändert von Hyperion am Donnerstag 21. Januar 2010, 16:46, insgesamt 1-mal geändert.
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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
Das Leben ist wie ein Tennisball.
lubb
User
Beiträge: 50
Registriert: Mittwoch 6. Januar 2010, 17:05

Wäre die Lösung eine klasse die sämtliche daten speichert und so an verschiedenen Klassen des Programm vererbt
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Nein.

Ich erweitere meine Empfehlung MVC mal um OOP.
Das Leben ist wie ein Tennisball.
lubb
User
Beiträge: 50
Registriert: Mittwoch 6. Januar 2010, 17:05

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
Antworten