Hey!
Ich hab da ,mal ne frage wie kann ich denn mysql datenbanken in python verwenden, also ich meine wie ich in python eingegebene daten in einer datenbank speichern kann??
vielen dank für eure hilfe!
Python+MySQL
Gib mehrere Möglichkeiten, von Command-Line tool parsen, über ODBC bis hin zu Bibliotheken wie MySQL for Python (DBAPI 2.0 supported).
Aber, mal etwas anderes .... hast du schonmal die Suchen-Funktion hier vom Forum benutzt? Da bekommst du dutzende Threads über MySQL .
Aber, mal etwas anderes .... hast du schonmal die Suchen-Funktion hier vom Forum benutzt? Da bekommst du dutzende Threads über MySQL .
glaube das wird dir alles erklären
mfg Jan
mfg Jan
Code: Alles auswählen
import MySQLdb
DROP = "DROP TABLE IF EXISTS tabelle"
CREATE = """CREATE TABLE tabelle (
item_id int auto_increment primary key,
bestellungen int,
menge int,
bestand int
lagerkosten int,
bestellkosten int,
gesamtkosten int
)"""
INSERT1 = "INSERT INTO tabelle VALUES (NULL,'10','16', '34','10','16', '34')"
SELECT = "SELECT * FROM tabelle"
# das Hauptprogramm
if (__name__ == '__main__'):
myconn = MySQLdb.connect(host = ip, user =benutzer , passwd = password, db = datenbank) # mit der Datenbank verbinden
cursor = myconn.cursor()
# cursor.execute(DROP) # Tabelle loeschen
cursor.execute(CREATE) # Tabelle erzeugen
cursor.execute(INSERT1) # 4 Eintraege vornehmen
cursor.execute(INSERT2)
cursor.execute(INSERT3)
cursor.execute(INSERT4)
cursor.execute(SELECT) # Datensaetze anzeigen
while True:
satz = cursor.fetchone() # eine Zeile aus der Ergebnismenge
if not satz: break
for kette in satz: # in Komponenten zerlegen
print kette, '\t ', # KEIN Zeilenvorschub
print # naechste Zeile, d.h. NUR Zeilenvorschub
cursor.execute(UPDATE) # Preise um 10 % anheben
print
cursor.execute(SELECT) # Datensaetze anzeigen
while True:
satz = cursor.fetchone() # eine Zeile aus der Ergebnismenge
if not satz: break
for kette in satz: # in Komponenten zerlegen
print kette, '\t ', # KEIN Zeilenvorschub
print # naechste Zeile, d.h. NUR Zeilenvorschub
cursor.close() # housekeeping
myconn.close()
joa nää python is toll :D
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi!
Und hier die feine, englische Art
Auch bei vielen Zeilen performant und trotzdem einfach umzusetzen.
lg
Gerold
EDIT: Klammern entfernt. Damit das niemand falsch abschreibt.
Und hier die feine, englische Art
Code: Alles auswählen
for row in iter(cursor.fetchone, None):
for column in row:
print column
lg
Gerold
EDIT: Klammern entfernt. Damit das niemand falsch abschreibt.
Zuletzt geändert von gerold am Mittwoch 17. Mai 2006, 16:08, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Vielen Dank leute!
hatte auch schon mal bei suchen nachgeguckt aber auf anhinb nicht das richtige gefunden... hab es bis jetzt auch immer so gemacht, aber sagt mal, mit variablen geht das nicht oder?das klappt nämlich irgendwie nicht dass jemand außerhab des quelltextes mit tkinter einen neuen eintrag macht oder etwas löscht? Na gutti also danke nochmal
hatte auch schon mal bei suchen nachgeguckt aber auf anhinb nicht das richtige gefunden... hab es bis jetzt auch immer so gemacht, aber sagt mal, mit variablen geht das nicht oder?das klappt nämlich irgendwie nicht dass jemand außerhab des quelltextes mit tkinter einen neuen eintrag macht oder etwas löscht? Na gutti also danke nochmal
Ähh, wie meinen? Was soll mit Variablen nicht gehen? meinst du vielleicht prepared statements?aber sagt mal, mit variablen geht das nicht oder?das klappt nämlich irgendwie nicht
Auch diese Frage ist nicht direkt klar. Ich versuchs mal, so zu beantworten:dass jemand außerhab des quelltextes mit tkinter einen neuen eintrag macht oder etwas löscht?
Es ist imho egal, was für weitere Bibliotheken (z.B. tkinter) du sonst noch nutzt. Einträge machen oder löschen kann jeder, der an die Datenbank rankommt und authentifiziert wird.
Wie derjenige an die Datenbank kommt (z.B. per "$mysql -u root -p") spielt dabei keine Rolle.
Zuletzt geändert von keppla am Mittwoch 17. Mai 2006, 15:40, insgesamt 1-mal geändert.
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Eher so:gerold hat geschrieben:Auch bei vielen Zeilen performant und trotzdem einfach umzusetzen.Code: Alles auswählen
for row in iter(cursor.fetchone(), None): for column in row: print column
Code: Alles auswählen
EMPTY_RESULT = ()
for row in iter(cursor.fetchone, EMPTY_RESULT):
for column in row:
print column
TUFKAB – the user formerly known as blackbird
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hi blackbird!blackbird hat geschrieben:Code: Alles auswählen
EMPTY_RESULT = () for row in iter(cursor.fetchone, EMPTY_RESULT): for column in row: print column
Natürlich - das mit den Klammern war schlampig, aber None geht OK.
mfg
Gerold
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
-
- User
- Beiträge: 1790
- Registriert: Donnerstag 28. Oktober 2004, 16:33
- Wohnort: Graz, Steiermark - Österreich
- Kontaktdaten:
Da war ich mir jetzt nicht mehr sicher. Könnte schören leere results werden durch ein leeres Tupel repräsentiert. Da kann ich mich jetzt aber irren.gerold hat geschrieben:Natürlich - das mit den Klammern war schlampig, aber None geht OK.
TUFKAB – the user formerly known as blackbird