[SQLAlchemy/PostgreSQL] 'None' Strings
Verfasst: Dienstag 10. Februar 2015, 17:20
Bin mir nicht ganz klar, wie ich mit sowas umgehen soll.
Kurz formuliert: Wie gehe ich mit "leeren" Strings (länge also 0) in einer PostgreSQL-Datenbank um, wenn ich auf diese per SQLAlchemy zugreifen möchte? In Python wird das ja nicht zu einem String der Länge 0, sondern zu 'None', was wiederum kein String ist.
In Python ist das Feld (bzw. Spalte) so deklariert.
Würde auch gerne das SQL dazu zeigen, aber weiß nicht wie ich mir sowas in 'psql' anzeigen lassen kann. Die Verbindung zur Datenbank und ein '\d' bekomme ich schon hin.
Laut pgAdmin3 sieht der relevante SQL-Ausschintt so aus .
Nun kann das Feld auch 'Null' sein, was in Python zu einem 'None' führt.
Das wiederum führt natürlich zu Fehlern, wenn ich sowas in ein GUI-Element (z.B. Textfeld) einfügen möchte, wo dort ein String erwartet wird.
Gibt es die Möglichkeit einen Leerenstring (Länge 0) als default-Wert zu definieren? pgAdmin hat das nicht zugelassen.
Die Klassenbeschreibung zu String ist in der sqlalchemy-doc wenig hilfreich. Daher weiß ich nicht, wie ich damit am elegantesten umgehen soll.
[url]file:///usr/share/doc/python-sqlalchemy-doc/html/core/types.html#generic-types[/url]
Die Länge kann ich nicht prüfen, weil 'None' kein String ist. Ein '__note == None' weißt er mit 'invalid syntax' zurück.
Kurz formuliert: Wie gehe ich mit "leeren" Strings (länge also 0) in einer PostgreSQL-Datenbank um, wenn ich auf diese per SQLAlchemy zugreifen möchte? In Python wird das ja nicht zu einem String der Länge 0, sondern zu 'None', was wiederum kein String ist.
In Python ist das Feld (bzw. Spalte) so deklariert.
Code: Alles auswählen
__note = sa.Column('note', sa.String)

Code: Alles auswählen
note text
Nun kann das Feld auch 'Null' sein, was in Python zu einem 'None' führt.
Das wiederum führt natürlich zu Fehlern, wenn ich sowas in ein GUI-Element (z.B. Textfeld) einfügen möchte, wo dort ein String erwartet wird.
Gibt es die Möglichkeit einen Leerenstring (Länge 0) als default-Wert zu definieren? pgAdmin hat das nicht zugelassen.
Die Klassenbeschreibung zu String ist in der sqlalchemy-doc wenig hilfreich. Daher weiß ich nicht, wie ich damit am elegantesten umgehen soll.
[url]file:///usr/share/doc/python-sqlalchemy-doc/html/core/types.html#generic-types[/url]
Die Länge kann ich nicht prüfen, weil 'None' kein String ist. Ein '__note == None' weißt er mit 'invalid syntax' zurück.