Hallo Python-Forum,
ich experimentiert seit kurzem ein bisschen mit Python-Webentwicklung herum, und würde jetzt auch gerne mal eine Datenbank einbinden.
Bei meinem Hoster (greatnet.de) steht mir eine MySQL-Datenbank zur verfügung.
Ich weiß jetzt leider nicht mehr wie ich diese MySQL-Datenbank in einem Python-Skript aufrufen kann.
Kann mir jemand Tipps dazu geben??
LG tjuXx
brauche Starthilfe
- Sr4l
- User
- Beiträge: 1091
- Registriert: Donnerstag 28. Dezember 2006, 20:02
- Wohnort: Kassel
- Kontaktdaten:
http://sourceforge.net/projects/mysql-python
Die Seite sollte dir als Info reichen und hier noch eine kleines minimal Beispiel:
Irgendwann (oder auch sofort, wenn du ORMs magst) schau dir mal http://www.sqlalchemy.org/ an.
Die Seite sollte dir als Info reichen und hier noch eine kleines minimal Beispiel:
Code: Alles auswählen
import MySQLdb
con = MySQLdb.connect(
host="localhost",
db="test",
user="test",
)
cur = con.cursor()
cur.execute("FROM test SELECT * WHERE name = %s", "Ich")
print cur.fetchall()
#con.commit()
Endlich mal ein Thema bei dem ich mitreden kannLeonidas hat geschrieben:Wobei ``SELECT *`` eigentlich selten eine richtig gute Idee ist.

Definitiv Jein zu deinem Statement: Wenn du alle Felder einlesen willst, und weisst in welcher Reihenfolge die Felder geliefert werden, _dann_ ist select * eine gute Idee

Ansonsten gilt natürlich das select * auf dem DB-Server und eine Selektierung der benötigten Felder auf dem Client absoluter Nonsens ist.[/OT]
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Und wann ist sowas der Fall? Wenn du auf Werte zugreifen willst, dann weißt du welche es sind. Wenn du mittels * zugreifst, dann musst du dir die Werte aus der Antwort herauspicken und dort kann die Reihenfolge anders sein als du erwartest (also Indizes die dann nicht auf das zeigen was du wolltest), denn man kann mit ALTER TABLE durchaus Spalten modifizieren. Der DictCursor niveliert das Problem etwas, aber auch so ist das Herausholen von unbenötigten Spalten aus der Datenbank schlicht unnütz.Pumeluk2 hat geschrieben:Definitiv Jein zu deinem Statement: Wenn du alle Felder einlesen willst, und weisst in welcher Reihenfolge die Felder geliefert werden, _dann_ ist select * eine gute Idee
Anders ist es etwa wenn du alle Spalten brauchst etwa für SQL Interfaces oder für Backups, da ist dann ``*`` wohl etwas praktischer als in den Tabellenmetadaten nachzuschlagen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
``SELECT *`` ist IMHO immer eine ganz blöde Idee, weil es nicht nur an Transparenz mangelt, sondern bei einer Änderung im Model alles in die Binsen geht. Wenn man die Felder explizit angibt, die man verwendet, sind bspw. zusätzliche Felder in einer Tabelle komplett ohne Nebenwirkungen, die Anpassungen am Code erfordern.
Was für ein Dialekt ist ``FROM x SELECT y`` eigentlich?
Was für ein Dialekt ist ``FROM x SELECT y`` eigentlich?
