Seite 2 von 2
Re: Python Anfängerfragen
Verfasst: Montag 19. Juli 2010, 20:07
von noisefloor
Hallo,
egal - für jeden Query werden es 2 Zeilen mehr für die Abfrage und mindestens 2 für die Ausgabe.
Gruß, noisefloor
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 09:21
von pole23
Die Verbindung zu einer Mysql-Datenbank erfolgt doch mit MySQLdb, oder?
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 11:35
von Hyperion
Oder einem ORM wie SQLALchemy oder Elixir. Ansonsten: Ja.
Ist MySQL vorgegeben?
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 11:41
von noisefloor
Hallo,
Oder einem ORM wie SQLALchemy oder Elixir
Oder Storm.
@pole23: Zum Zugriff auf eine DB brauchst du immer ein passendes Modul. das für SQLite3 ist bei Python seit Version 2.5 (?) an Bord, für MySQl oder PostgreSQL oder oder oder musst du das nachinstallieren. Was aber sehr einfach ist.
Python besitzt zumindest für relationale Datenbanken eine einheitliche API - d.h. der Wechsel von z.B. SQLite auf MySQL ist in der Regel mit der Änderung einer Code-Zeile möglich (vorausgesetzt, dass im sonst im Prog keine für eine DB-spezifischen Befehle hast).
Ob du ein ORM benutzt, wie man Hyperion angedeutet, hängt davon ab, was du später vor hast. Das Einarbeiten in ein ORM ist halt zusätzlicher Aufwand, der aber (am Anfang) lange nicht so hoch ist wie PyGTK oder PyQt lernen.
Gruß, noisefloor
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 12:27
von pole23
Hyperion hat geschrieben:Ist MySQL vorgegeben?
Es ist nicht vorgegeben.
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 12:30
von Hyperion
Wenn Du dann Features wie Netzwerkzugriff, Userverwaltung usw. nicht benötigst, würde ich auf SQLite setzen.
Je nach dem, was für Daten Du ablegen musst und wie diese strukturiert sind, kommen dann aber auch noch Key-Value-Stores oder Dokumenten-zentrierte Datenbanken in Frage (Stichwort NoSQL). Bekannte Vertreter sind da MongoDB, CouchDB, Tokyo-Cabinett, uvm.
Wenn Du uns da mehr Auskunft geben könntest, wäre da eine Empfehlung für Dich denkbar.
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 15:12
von pole23
Also vom Prinzip her hatte ich folgendes vor. Wir haben mehrere Kunden mit mehreren Servern. Und es kommt schon mal vor, dass man zum Beispiel eine IP Adresse hat, aber nicht genau weis, was für Dienste, Benutzer auf dem Server eingerichtet sind oder wo die Maschine ist. Daher hatte ich an ein Tool gedacht, wo man die IP oder den Namen vom Server eingibt und dann die nötigen Informationen erhält. Es soll natürlich auch möglich sein, neue Daten(Server) eingeben zu können. Eine Benutzerverwaltung wäre hatte ich vor, da nicht jeder diese Daten sehen soll.
Ich hoffe das hat etwas geholfen.
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 15:19
von Hyperion
Das könnte man durchaus mit einem NoSQL-Ansatz fahren denke ich.
Wenn's relational sein soll, würde ich für so eine simple Sache auf SQlite setzen.
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 15:22
von pole23
was genau wäre denn de Vorteil von SQlite?
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 15:24
von Hyperion
pole23 hat geschrieben:was genau wäre denn de Vorteil von SQlite?
Es ist kein Server-Prozess notwendig, sondern alle Daten liegen in einer Datei und werden on-the-fly von der Logik des Datenbanktreibers herausgesucht. Kann man somit überall leicht lokal testen und auch einfachst deployen. Der Firefox nutzt z.B. SQLite zum SPeichern interner Parameter und der Lesezeichen.
Ähnliches gibt es auch für NoSQL-Systeme. Tokyo Cabinet iirc.
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 15:33
von pole23
Aber ist auch möglich, die Datei "zentral" auf einem Server oder so zu legen, wo mehrere User Zugriff haben, oder?
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 16:05
von Leonidas
Ja, warum auch nicht?!
Re: Python Anfängerfragen
Verfasst: Dienstag 20. Juli 2010, 19:23
von noisefloor
Hallo,
wenn du immer "nur" die Suche "zeigt mir zur IP die Daten x und y und z" hast, dann geht auch eine dokument-orientierte DB oder ein KV-Store.
Echte Vorteile bringt das aber IMHO nicht - ich gehe davon aus, dass dass du nur ein paar Dutzend Datensätze hast.
Eine dokumentenorientierte DB hätte vielleicht den Vorteil, dass du in einem Dokument (=Datensatz) auch alle anderen Daten zum Kunden (Tel.Nr., Kontakt etc.) nach belieben speichern kannst.
Wenn es relational sein soll: Der klare Vorteil von SQLite ist die Portierbarkeit (ist in Python integriert) und die "Leichtgewichtigkeit". Für eine paar Dutzend Datensätze braucht man kein Schwergewicht a la MySQL oder PostgreSQL. Und wenn doch (mal irgendwan): der Umzug von SQLite -> MySQL (PostgreSQL) ist ziemlich einfach.
BTW: Das iPhone nutzt AFAIK auch SQLite als DB - wenn wir schon beim Namedropping sind.
Gruß, noisefloor