Hi!
Um von Python aus auf eine Datenbank zugreifen zu können, braucht man normalerweise eine Zwischenschicht die sich um die Eigenheiten der jeweiligen Datenbank kümmert -- eine Schnittstelle also.
Es gibt viele solcher Schnittstellen zu den verschiedensten Datenbanken. Python ist damit also wunderbar geeignet, um mit Datenbanken zu arbeiten.
Hier ist eine Auflistung der bekannten Datenbanken und der zugehörigen Schnittstellen:
SQLite --> sqlite3
SQLite: http://www.sqlite.org/
sqlite3-Modul (ab Python 2.5) https://docs.python.org/2/library/sqlite3.html
PostgreSQL --> psycopg2
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
psycopg2: http://initd.org/tracker/psycopg/wiki/PsycopgTwo
psycopg2 (Windows Install): http://www.stickpeople.com/projects/pyt ... index.html
PostgreSQL --> py-postgresql
Für Python 3 geeignet. Reines Python oder mit optionaler C-Optimierung.
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
PostgresPy: http://python.projects.postgresql.org/
PostgreSQL --> PyGreSQL
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
PyGreSQL: http://www.pygresql.org/
PostgreSQL --> PoPy
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
PoPy: http://www.zope.org/Members/tm/PoPy
PoPy (SourceForge): http://sourceforge.net/projects/popy
PostgreSQL --> pg8000
Reine Python-Schnittstelle -- kein Binary notwendig.
Auch für Python 3!
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
gp8000: http://pybrary.net/pg8000/
PostgreSQL --> python-pgsql
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
python-pgsql: http://pypi.python.org/pypi/python-pgsql
PostgreSQL --> pg_proboscis
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
pg_proboscis:
- http://pypi.python.org/pypi/pg_proboscis/
- http://python.projects.postgresql.org/
PostgreSQL --> pyPgSQL
PostgreSQL: http://www.postgresql.org/
PostgreSQL (deutsch): http://www.postgres.de/
pyPgSQL: http://pypgsql.sourceforge.net/
MS SQL-Server --> pyMsSql:
MS SQL-Server: http://www.microsoft.com/sql/
MS SQL-Server (Wikipedia): http://de.wikipedia.org/wiki/MSSQL
pyMsSQL: http://pymssql.sourceforge.net/
Firebird / Interbase --> KInterbasDB
Firebird: http://firebirdsql.org
Interbase: http://www.interbase.com
kinterbasdb: http://kinterbasdb.sourceforge.net
Firebird --> pyfirebirdsql
Firebird: http://firebirdsql.org
pyfirebirdsql: http://github.com/nakagami/pyfirebirdsql/
pypi: http://pypi.python.org/pypi/firebirdsql/
ZODB (Zope Object Database) --> Python
ZODB: http://www.zope.org/Wikis/ZODB/FrontPage
MySQL --> mysql-python
MySQL: http://mysql.org/
mysql-python: http://sourceforge.net/projects/mysql-python/
mysql-python Website: http://mysql-python.sourceforge.net/
mysql-python DB-API-Users-Guide: http://mysql-python.sourceforge.net/MyS ... ml#mysqldb
mysql-python Präsentation: http://dustman.net/andy/python/python-and-mysql
Troubleshooting: [wiki]MySQLdb troubleshooting[/wiki]
mysql-python Windows Binaries: http://www.codegood.com/archives/4
MySQL --> oursql
MySQL: http://mysql.org/
oursql Launchpad: https://launchpad.net/oursql
oursql PyPi: http://pypi.python.org/pypi/oursql/
oursql Documentation: http://packages.python.org/oursql/
Gadfly --> Python
Gadfly: http://gadfly.sourceforge.net/gadfly.html
KirbyBase --> Python
KirbyBase: http://www.netpromi.com/kirbybase_python.html
Metakit --> Mk4py (Metakit for Python)
Metakit: http://www.equi4.com/metakit.html
Mk4py: http://www.equi4.com/metakit/python.html
PyTables --> Python
PyTables: http://www.pytables.org/
Verschiedenste Datenbanken --> ADOdb for Python
ADOdb for Python: http://phplens.com/lens/adodb/adodb-py-docs.htm
Verschiedenste Datenbanken --> Python DB-API 2.0 module for ADO
adodbapi: http://adodbapi.sourceforge.net/
ODBC (unixODBC API) --> PyODB
PyODB: http://sourceforge.net/projects/pyodb/
ODBC (Windows und Linux) --> pyodbc
pyodbc: http://code.google.com/p/pyodbc (ehemals: http://pyodbc.sourceforge.net/)
Beispiel mit Access als DB: http://www.python-forum.de/topic-12658.html
ODBC (Windows und Linux) --> ceODBC
ceODBC: http://ceodbc.sourceforge.net/
Oracle --> cx_Oracle
Oracle: http://www.oracle.com/lang/de/database/index.html
cx_Oracle: http://www.python.net/crew/atuining/cx_Oracle/
Durus --> Python
Durus: http://www.mems-exchange.org/software/durus/
SnakeSQL --> Python
SnakeSQL: http://www.pythonweb.org/projects/snakesql/index.html
IBM Informix --> InformixDB:
IBM Informix: http://www-306.ibm.com/software/data/informix/
InformixDB: http://informixdb.sourceforge.net/
IBM DB --> Python driver and DBI:
Python driver and DBI: http://pypi.python.org/pypi/ibm_db/
PyDbLite --> Python
PyDbLite: http://quentel.pierre.free.fr/PyDbLite/index.html
Schevo --> Python
Schevo: http://cheeseshop.python.org/pypi/Schevo
dbf (dBase, Foxpro, Clipper, ...) --> dbfpy
dbfpy: http://dbfpy.sourceforge.net/
Buzhug --> Python
Buzhug: http://buzhug.sourceforge.net/
CouchDB --> Json
CouchDB: http://couchdb.com/
Python library: http://pypi.python.org/pypi/CouchDB
Sybase --> python-sybase:
Sybase module for Python: http://python-sybase.sourceforge.net/
Filemaker --> fmkr.py:
Filemaker: http://www.filemaker.com/
Filemaker Modul für Python: http://www.lfd.uci.edu/~gohlke/code/fmkr.py.html
Filemaker --> PyFileMaker:
Filemaker: http://www.filemaker.com/
PyFileMaker: http://code.google.com/p/pyfilemaker/
Mongo --> pymongo
Mongo: http://www.mongodb.org/ (=document-oriented data store)
pymongo: http://github.com/mongodb/mongo-python-driver/
pymongo (pypi): http://pypi.python.org/pypi/pymongo/
pod --> Python
Pickled Object Database ("pod"): http://code.google.com/p/pickled-object-database/
dobbin --> Python
Pure-Python object database
PyPi: http://pypi.python.org/pypi/dobbin/
HBase --> PyHBase:
HBase: http://hbase.apache.org/
PyHBase: http://pypi.python.org/pypi/PyHBase/
ODBC (Windows, Linux, Mac OS, FreeBSD) --> mxODBC
mxODBC: http://www.egenix.com/products/python/mxODBC/
ODBC (Windows, Linux, Mac OS, FreeBSD) --> mxODBC Connect
mxODBC Connect: http://www.egenix.com/products/python/mxODBCConnect/
(Client-Server Version von mxODBC, nutzt die ODBC Treiber auf der Server Seite)
Redis --> redis-py
Redis: http://redis.io/ (Key-Value Store - sauschnell und super einfach)
redis-py: https://github.com/andymccurdy/redis-py
redis-py (pypi): http://pypi.python.org/pypi/redis/
Python Database Modules zu finden bei python.org: http://wiki.python.org/moin/DatabaseProgramming
Wenn du Vorschläge oder Änderungswünsche hast, dann schick mir eine PN. Ich werde mich darum kümmern.
lg
Gerold
Liste der bekannten Datenbankschnittstellen
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Zuletzt geändert von gerold am Mittwoch 10. Februar 2010, 17:50, insgesamt 45-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.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das ist ja was ganz anderes und setzt auf die hier beschriebenen Datenbankschnittstellen auf. Da müsste man eher eine Liste von ORM-Libraries anlegen, wo dann Storm, Django & Co. auch drin wären.maxip hat geschrieben:Vielleicht sollte man noch SQLAlchemy erwaehnen, ist ziemlich cool...
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Wieso gibt es denn sieben (!) Bindings für Postgre? Welches davon nutzt man jetzt eigentlich?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
psycopg. Ich kenne kein nennenswertes Projekt dass etwas anderes nutzt. Django und SQLAlchemy nutzen beide das.lunar hat geschrieben:Welches davon nutzt man jetzt eigentlich?
pg8000 ist ja eben genau deswegen so benannt worden: """pg8000's name comes from the belief that it is probably about the 8000th PostgreSQL interface for Python."""
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
-
- User
- Beiträge: 424
- Registriert: Montag 28. Juli 2003, 16:19
- Wohnort: /dev/reality
Nachtrag für Firebird:
pyfirebirdsql
Ist eine Neuentwicklung, die ursprünglich für python 3.x entstanden ist. Allerdings kam sehr schnell die Nachfrage nach einem Backport für python 2.7x, welches jetzt auch unterstützt wird.
pyfirebirdsql setzt auf die xdrlib auf, im Gegensatz zu der "alten" Schnittstelle kinterbasdb, welche eine in python eingewickelte C-Library ist.
pyfirebirdsql
Ist eine Neuentwicklung, die ursprünglich für python 3.x entstanden ist. Allerdings kam sehr schnell die Nachfrage nach einem Backport für python 2.7x, welches jetzt auch unterstützt wird.
pyfirebirdsql setzt auf die xdrlib auf, im Gegensatz zu der "alten" Schnittstelle kinterbasdb, welche eine in python eingewickelte C-Library ist.
I'm not getting paid for being Mr. Nice Guy!
Ja, aber das ist ja nicht das Thema dieses Threads, siehe Antwort von Leonidas.proofy hat geschrieben:Gibt es noch mehr, ggf. eingebaute Abstraktionsmodule für Datenbanken ähnlich wie ADOdb?
An sich wäre aber das populärste natürlich SQLalchemy.
Unter ferner liefen dann noch Storm, SQLobject, Autumn.
Das wars an sich.
Den nehme ich als ODBC, PURE PYTHON:
https://code.google.com/p/pypyodbc/
https://code.google.com/p/pypyodbc/
Ich habe nicht alles geprüft, aber bei:
Und der Link bei PyTables führt auch ins Nirvana (URL: http://www.pytables.org/moin/PyTables).
Ist der Link bei Usage Guide nicht mehr zugänglich, d. h. "404 not found".SQLite --> pySQLite
SQLite: http://www.sqlite.org/
pySQLite: http://initd.org/tracker/pysqlite
pySQLite-Modul (ab Python 2.5): http://docs.python.org/lib/module-sqlite3.html
Usage Guide: http://initd.org/pub/software/pysqlite/ ... guide.html
Und der Link bei PyTables führt auch ins Nirvana (URL: http://www.pytables.org/moin/PyTables).
- gerold
- Python-Forum Veteran
- Beiträge: 5555
- Registriert: Samstag 28. Februar 2004, 22:04
- Wohnort: Oberhofen im Inntal (Tirol)
- Kontaktdaten:
Hallo pixewakb!pixewakb hat geschrieben:Ich habe nicht alles geprüft, aber bei:[...]Ist der Link bei Usage Guide nicht mehr zugänglich,
Danke fürs Durchsehen. So wie es aussieht, kann ich den Beitrag nicht mehr ändern. Muss jemand mit mehr Rechten im Forum machen.
lg
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.
https://wiki.python.org/moin/
Kann man sicherlich drüber streiten, aber die Inhalte wären dann an einem Ort, der wahrscheinlich auch länger existiert und verlinkt werden könnte, und gegen dezidiert deutschsprachige Seiten scheint dort auch niemand etwas zu haben. Das dortige Wiki scheint wenig Inhalte und wenig aktive Benutzer zu haben - wäre m. E. ein Argument die dortige Nutzer-Basis zu verbreitern.
Einschlägig: https://wiki.python.org/moin/DatabaseProgramming
Und vor allem: https://wiki.python.org/moin/DatabaseInterfaces
Da könnte man sich mit https://wiki.python.org/moin/Datenbank-Programmierung "dranhängen"
Kann man sicherlich drüber streiten, aber die Inhalte wären dann an einem Ort, der wahrscheinlich auch länger existiert und verlinkt werden könnte, und gegen dezidiert deutschsprachige Seiten scheint dort auch niemand etwas zu haben. Das dortige Wiki scheint wenig Inhalte und wenig aktive Benutzer zu haben - wäre m. E. ein Argument die dortige Nutzer-Basis zu verbreitern.
Einschlägig: https://wiki.python.org/moin/DatabaseProgramming
Und vor allem: https://wiki.python.org/moin/DatabaseInterfaces
Da könnte man sich mit https://wiki.python.org/moin/Datenbank-Programmierung "dranhängen"
Hallo!
Was haltet ihr von TinyDB als NoSQL-Datenbank (http://tinydb.readthedocs.io/en/latest/index.html)? Scheint recht einfach zu sein und man braucht keinen Server wie z.B. bei MongoDB. Sollte sich dann am Schluss auch in eine ausführbare .exe-Datei pressen lassen. Die Daten werden im json-Format gespeichert.
LG. Anton
Was haltet ihr von TinyDB als NoSQL-Datenbank (http://tinydb.readthedocs.io/en/latest/index.html)? Scheint recht einfach zu sein und man braucht keinen Server wie z.B. bei MongoDB. Sollte sich dann am Schluss auch in eine ausführbare .exe-Datei pressen lassen. Die Daten werden im json-Format gespeichert.
LG. Anton
Wenn man ernsthaft dir Vor- und Nachteile von TinyDB und Mongo vergleicht hat man die Kontrolle über die verwendeten Datenbanken verloren. Wenn man sich den "Why Not use TinyDB?" Teil der Doku anschaut wird ziemlich deutlich dass TinyDB nur als SQLite Alternative taugt, in Situationen wo man wenige Daten hat.
TinyDB ist also letztendlich nichts anderes als "Ich speicher alles in einer riesigen database.json" in nett umgesetzt.
TinyDB ist also letztendlich nichts anderes als "Ich speicher alles in einer riesigen database.json" in nett umgesetzt.
Für eine kleine Mitgliederverwaltung brauche ich ja nichts schnelles, da tut's TinyDB vermutlich. Und wenn ich am Schluss eine .exe-Datei habe, die ich leicht an den Vorstand weitergeben kann, dann ist das schon ein Vorteil. Ich habs selbst noch nicht probiert, aber es sieht recht einfach aus. Bei sqlite muss ich halt vorher schon alle Felder wissen, die je in dem Verein gebraucht werden. Bei TinyDB kann ich einfach das Formular erweitern und zusätzliche Felder abspeichern.