Login mit Datenbank und GUI

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Guten Morgen,

ich such ein simples Beispiel über ein Login mit Datenbankanbindung.
Sprich Eingabe erfolgt über eine GUI und diese soll auf Ihre Korrektheit
überprüft werden. Wenn korrekt soll weitergeleitet werden wenn falsch dann
Fehlermeldung.

Vielleicht hat da einer ein kleines Beispiel von euch?

Gruß
Kalli
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Kalli87: das hat ja nichts mit Datenbanken zu tun, sondern mit GUI. Welche willst Du denn verwenden?
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

@Sirius3

Bis jetzt hab ich nur tkinter verwendet wenn es eine einfachere Variante gibt dann versuch ich diese mal aus.

Wie meinst du das es nichts mit Datenbank zu tun?
Wenn ich in einem Eingabefeld die Login-Daten eingebe und diese mit den
Datensätzen in der Datenbank verglichen werden sollen ob diese richtig sind, hat es doch etwas mit
Datenbank zu tun, oder sehe ich das falsch?

Ich such halt ein Beispiel was so aufgebaut ist, simpel reicht vollkommen aus.

Gruß
Kalli
Benutzeravatar
/me
User
Beiträge: 3556
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

Kalli87 hat geschrieben:Wenn ich in einem Eingabefeld die Login-Daten eingebe und diese mit den
Datensätzen in der Datenbank verglichen werden sollen ob diese richtig sind, hat es doch etwas mit
Datenbank zu tun, oder sehe ich das falsch?
Das komplette Programm ja, aber man wird natürlich GUI und Anwendungslogik trennen.

In diesem Fall würdest du also erst deine GUI aufbauen und für die Überprüfung des Logins so lange eine Dummy-Funktion bereitstellen. Genauso könntest du auch anders herum erst den Datenbankzugriff implementieren und die getestete und lauffähige Version dann in die anschließend erstellte GUI einbinden.

Mit welchem dieser beiden getrennt zu betrachtenden Teile hast du denn jetzt das konkrete Problem?
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Ah ok, dann ist es klar das es nicht wirklich was mit der Programmierung
einer Datenbank zu tun hat.

Ich hab mit der GUI angefangen, zwei simple Eingabefelder erstellt
und ein Button der "Login" heißt.

Nun soll bei dem betätigen des Buttons eine Funktion ausgelöst werden
die die Eingabe mit den Datensätzen aus der Datenbank vergleicht.

Mein Problem besteht jetzt darin das ganze irgendwie zu vergleichen.
Die Abfrage der Tabelle ist ja kein Problem.

Mal ein Gedankenansatz von mir:

Über ".get" komme ich ja an das was in den Eingabefeldern steht ran,
und bei der Datenbankabfrage kann ich die Datensätze der einzelnen spalten per "append"
doch in Variablen/listen speichern.

Korrigiert mich wenn ich falsch liegen sollte bitte.

Was ist jetzt aber wenn ich mehrere Datensätze gespeichert habe kann ich diese dann trotzdem so simpel vergleichen?
Bis jetzt hab ich nur einen Benutzer mit Passwort eingetragen zu Testzwecken, da dürfte an sich ja kein Problem entstehen.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Kalli87: also Du hast Probleme aus einer Datenbanktabelle nach dem Benutzernamen zu suchen. Wie sieht denn Deine Datenbankanbindung bisher aus?
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Quatsch nein, ich glaub du hast mich falsch verstanden :mrgreen:

Mal ein Beispiel
Simple Anbindung an die Datenbank + Abfrage der Mitarbeiter

Code: Alles auswählen

connection = psycopg2.connect("dbname=sqltest")
cursor = connection.cursor()
sql = "SELECT * FROM mitarbeiter"
cursor.execute(sql)
Eingabefeld:

Code: Alles auswählen

# Beschriftung
Label(root, text="Benutzername", font="Helvetica 13 bold").grid(row=1, column=0)
#Eingabefeld
benutzername = Entry(root, font=10)
benutzername.grid(row=0, column=0)

So sage ich jetzt das mir die Datensätze in die Variable/Liste gespeichert werden soll:

Code: Alles auswählen

benutzer=[]
for dsatz in (cursor):
    nickname = dsatz[0]
    benutzer.append(nickname)
Heißt jetzt das aus der 1. Spalte der Tabelle mir die Namen der Mitarbeiter in benutzer[ ] gespeichert werden.

Jetzt möchte ich das gleiche mit dem Eingabefeld haben, sprich mit .get an eine Variable binden.

Code: Alles auswählen

user = benutzername.get()
Das ganze miteinander vergleichen, meine Überlegung sah so aus:

Code: Alles auswählen

def login():
if anmelde == benutzer:
     print('Hat geklappt!')
Jetzt ist meine Frage ob das überhaupt so leicht funktioniert was ich mir so gedacht habe
und die nächste Frage wäre was ist wenn in der Datenbank mehr als nur ein Datensatz vorhanden
sind. Kann man es dann trotzdem so simple schreiben / vergleichen wie ich es mir denke?
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Kalli87: also doch, Du weißt nicht, wie man Datenbanken benutzt. Da empfehle ich mal, ein Anfängertutorial zu SQL durchzuarbeiten.
Kalli87
User
Beiträge: 281
Registriert: Montag 10. November 2014, 11:27

Ja klar jetzt, stand aufm schlauch :D
Ich weiß jetzt was du meinst dazu muss ich nur eine Abfrage erstellen die nach der Eingabe sucht ob der Datensatz vorhanden ist.

Fehler gefunden, erkannt wird behoben :oops:
Da hat sich das ganze an sich erledigt.

Manchmal seh ich den Wald vor lauter Bäumen nicht, wie man so schön sagt :lol:

Ich bitte um Entschuldigung!
Trotzdem danke das Ihr mir auf die Sprünge geholfen habt.

Schönes Wochenende :)
Antworten