Hi! Kennt jemand irgendein Stück Python Code, dass Datentypen (auch komplexe, wie Listen mit Klassen darin) auf Festplatte speichern kann, so wie Pickle, aber nicht in Pickle Dateinen sondern über variable Backends in Datenbanken (die man auch in nicht Python Programmen auslesen kann), die nur in Python geschrieben sind (am besten ab Python
2.1) und auf Windows und Linux laufen. Und das ganze am besten relativ 'leicht'.
Ich habe mir folgendes schon kurz angeschaut (alles bei parnassus gefunden): gadfly (wohlbekannt, zwar nicht ganz das, aber gut als backend verwendbar), dbobj, pymerase (hmm, hab ich nicht so richtig verstanden, nutzt aber als backend nur postgre, also ist nicht), snakedb (interessant, hat schon mal backends für gadfly und mysql, aber man müsste beides mitliefern -> gadfly groß, mysql -> schwer), SQLObject (das klingt wirklich gut! problematisch ist nur das es neue py22 klassen nutzt und die backends auch nicht, hat das jemand schon benutzt?) grüße, Marek _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On Thu, Apr 22, 2004 at 02:08:51PM +0200, Marek Kubica wrote:
Hi! Kennt jemand irgendein Stück Python Code, dass Datentypen (auch komplexe, wie Listen mit Klassen darin) auf Festplatte speichern kann, so wie Pickle, aber nicht in Pickle Dateinen sondern über variable Backends in Datenbanken (die man auch in nicht Python Programmen auslesen kann), die nur in Python geschrieben sind (am besten ab Python >2.1) und auf Windows und Linux laufen. Und das ganze am besten relativ 'leicht'.
Hallo, Wenn du in der Datenbank nicht ein Pickle abspeichern willst, sondern die Attribute der Klassen in Spalten schreiben willst suchst du: Objekt-Relationals Mapping. Beispiel: Class Mitarbeiter: def __init__(self): id=... name=... email=... projects=[...] # N zu M Beziehung ---> (relationale) Datenbank Tabelle Mitarbeiter id | name | ============= 1 | Maier ----------- 2 | Schulze Tabelle Projects: id | project =========== 1 | Werbung ------------ 1 | Vertrieb Tabelle projects-mitarbeiter: mid | pid ========= 1 | 1 ------- 1 | 2 Andere Lösung: Du verwendest ZODB und programmierst Wrapper für Perl, Java, bzw. was du eben noch als andere Programmiersprache benötigst. Ich würde den zweiten Vorschlag bevorzugen. Gruß, Thomas -- Thomas Guettler <guettli@thomas-guettler.de> http://www.thomas-guettler.de _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Servus, On Thu, 22 Apr 2004 22:32:30 +0200 Thomas Guettler <guettli@thomas-guettler.de> wrote:
Wenn du in der Datenbank nicht ein Pickle abspeichern willst, sondern die Attribute der Klassen in Spalten schreiben willst suchst du: Objekt-Relationals Mapping. Ah, ja danke, jetzt habe ich was um Google zu füttern. SQLObject ist doch ein ORM (http://www.sqlobject.org).
Andere Lösung: Du verwendest ZODB und programmierst Wrapper für Perl, Java, bzw. was du eben noch als andere Programmiersprache benötigst. ZODB scheint mir etwas zu große zu sein, denn ich plane mein Programm so auszuliefern, dass man nur noch Python (2.1) braucht (und sich zusätzlich 800kb runterzuladen, also 10x mehr als das eigentliche Programm scheint mir etwas viel, besonders mit Modem und das nur für die Datenbank).
Ich würde den zweiten Vorschlag bevorzugen. Wieso? Hat ZODB irgendweilche Hammervorteile gegenüber ORMs?
grüße, Marek _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On Fri, Apr 23, 2004 at 02:13:59PM +0200, Marek Kubica wrote:
Servus,
On Thu, 22 Apr 2004 22:32:30 +0200 Thomas Guettler <guettli@thomas-guettler.de> wrote:
[cut]
Ich würde den zweiten Vorschlag bevorzugen. Wieso? Hat ZODB irgendweilche Hammervorteile gegenüber ORMs?
Hallo, Wenn du ein paar Tage mit ZODB gearbeitet hast, willst du sicherlich nicht mehr mit in einer auf Tabellen beschränkten Datenspeicherung arbeiten. Der nächste Vorteil ist, dass alles aus einer Hand kommt. Viele ZODB Entwickler sind auch Python Entwickler. Gruß, Thomas -- Thomas Guettler <guettli@thomas-guettler.de> http://www.thomas-guettler.de _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Marek Kubica wrote:
Kennt jemand irgendein Stück Python Code, dass Datentypen (auch komplexe, wie Listen mit Klassen darin) auf Festplatte speichern kann, so wie Pickle, aber nicht in Pickle Dateinen sondern über variable Backends in Datenbanken (die man auch in nicht Python Programmen auslesen kann), die nur in Python geschrieben sind (am besten ab Python
2.1) und auf Windows und Linux laufen. Und das ganze am besten relativ
'leicht'.
Du könntest einen xml pickle benutzten. Durch xslt solltest du die daten auch in andere formate transformieren können. Ich habe z.B. mal von einen xml pickle für php gelesen. Es gibt wohl auch einer für Python. Gruß Daniel -- nihil me cirumdat .. . .. ... . . .. . ... . .. . ... . . . pgp key @ http://files.poelzi.org/pgp.txt ED80 E53D 5269 4BB1 1E73 3A53 CBF9 A421 0A7B 003D _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
Warum nicht die dumps Funktion des pickle-Moduls ? Eventuell dann das ganze noch mittels uu.binascii modul oder base64 in "text" wandeln... Gruß, Uwe
-----Ursprüngliche Nachricht----- Von: python-de-bounces@python.net [mailto:python-de-bounces@python.net]Im Auftrag von daniel.poelzleithner Gesendet: Freitag, 23. April 2004 15:33 An: Marek Kubica Cc: Python-de Mailinglist Betreff: [mailinglist] Re: [Python-de] Art Persistence Framework
Marek Kubica wrote:
Kennt jemand irgendein Stück Python Code, dass Datentypen (auch komplexe, wie Listen mit Klassen darin) auf Festplatte speichern kann, so wie Pickle, aber nicht in Pickle Dateinen sondern über variable Backends in Datenbanken (die man auch in nicht Python Programmen auslesen kann), die nur in Python geschrieben sind (am besten ab Python
2.1) und auf Windows und Linux laufen. Und das ganze am besten relativ
'leicht'.
Du könntest einen xml pickle benutzten. Durch xslt solltest du die daten auch in andere formate transformieren können. Ich habe z.B. mal von einen xml pickle für php gelesen.
Es gibt wohl auch einer für Python.
Gruß Daniel
-- nihil me cirumdat
.. . .. ... . . .. . ... . .. . ... . . . pgp key @ http://files.poelzi.org/pgp.txt ED80 E53D 5269 4BB1 1E73 3A53 CBF9 A421 0A7B 003D
_______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
On Friday 23 April 2004 15:33, daniel.poelzleithner wrote:
Marek Kubica wrote:
Kennt jemand irgendein Stück Python Code, dass Datentypen (auch komplexe, wie Listen mit Klassen darin) auf Festplatte speichern kann, so wie Pickle, aber nicht in Pickle Dateinen sondern über variable Backends in Datenbanken (die man auch in nicht Python Programmen auslesen kann), die nur in Python geschrieben sind (am besten ab Python
2.1) und auf Windows und Linux laufen. Und das ganze am besten relativ
'leicht'.
Du könntest einen xml pickle benutzten. Durch xslt solltest du die daten auch in andere formate transformieren können. Ich habe z.B. mal von einen xml pickle für php gelesen.
Es gibt wohl auch einer für Python.
Ich hatte zu erst an CORBA gedacht. Also: Irgend eine Pro-Sprache | | \|/ V CORBA | | \|/ V Pyton | | \|/ V SQL(-DB) | | \|/ V Pyton | | \|/ V CORBA | | \|/ V Irgend eine Pro-Sprache Ich sehe nur das Problem das auch das MONO-Projekt(www.go-mono.org) hat. C# und Java z.B. kennt keine Mehrfachvererbung (soweit ich weiss). Wie soll bei dem Transfer von Python zu C# oder Java damit verfahren werden? Olaf _______________________________________________ python-de maillist - python-de@python.net http://python.net/mailman/listinfo/python-de
participants (5)
-
daniel.poelzleithner
-
Marek Kubica
-
Olaf 'Rübezahl' Radicke
-
Thomas Guettler
-
Uwe Schmitt