Seite 1 von 1
Suchen wie bei Sqlalchemy
Verfasst: Donnerstag 21. Juni 2012, 18:15
von sprudel
Guten Tag,
ich habe eine Frage. Bei Sqlalchemy ist es möglich, Funktionen Bedingungen (zum Beispiel name=="abc") zu übergeben.
Wie kann ich solch ein Verhalten in mein eigenes Programm einbinden? Finde das eine sehr attraktive Syntax.
Vielen Dank.
Beste Grüße
sprudel
Re: Suchen wie bei Sqlalchemy
Verfasst: Donnerstag 21. Juni 2012, 18:49
von noisefloor
Hallo,
also ich kenne das bei SA nur als Bedingung für Filter(funktionen), mit denen du Datensätze selektierst.
Im "normalen" Programm ist doch nichts anderes als ein
Und falls du was anderes meinst- bitte ein Beispiel.
Gruß, noisefloor
Re: Suchen wie bei Sqlalchemy
Verfasst: Donnerstag 21. Juni 2012, 19:19
von sprudel
Ne, ich meine zum Beispiel Folgendes:
Code: Alles auswählen
from sqlalchemy import or_
filter(or_(User.name == 'ed', User.name == 'wendy'))
Wenn man das im Programm so eingibt, dürfte ja eigentlich nur True oder False rauskommen (sofern User.name überhaupt im aktuellen Kontext vorhanden ist).
Re: Suchen wie bei Sqlalchemy
Verfasst: Donnerstag 21. Juni 2012, 19:37
von deets
Prinzipiell so:
Code: Alles auswählen
class ColumComparer(object):
def __init__(self, name):
self.name = name
self.other_expression = None
def __eq__(self, other):
self.other_expression = other
return self
def __str__(self):
assert self.other_expression is not None
return "%s == %r" % (self.name, self.other_expression)
cc = ColumComparer("foo")
print cc == "bar"
Aber ich habe ein bisschen Angst dass du statt SQLAlchemy zu benutzen mal wieder was selbst erfindest...
Re: Suchen wie bei Sqlalchemy
Verfasst: Donnerstag 21. Juni 2012, 20:07
von noisefloor
Hallo,
@sprudel: Dann frag' ich mal anders - was ist denn das Ziel, also was willst du wie in deiner Applikation erreichen. Das ist mir immer noch nicht klar...
Gruß, noisefloor
Re: Suchen wie bei Sqlalchemy
Verfasst: Donnerstag 21. Juni 2012, 20:16
von sprudel
Ich habe noch keinen konkreten Einsatzweck, sondern wollte es nur einmal verstehen, wie sowas funktionieren kann.
Vielen Dank für die Erklärung.
Re: Suchen wie bei Sqlalchemy
Verfasst: Donnerstag 21. Juni 2012, 20:44
von noisefloor
Hallo,
gut, dann frage ich anders: Was willst du woraus selektieren? Da ist mir nämlich nicht klar...
Wenn du "nur" wissen willst, wie sowas umgesetzt ist, dann lohnt sich wohl der Blick in de SA-Quellcode
Gruß, noisefloor
Re: Suchen wie bei Sqlalchemy
Verfasst: Freitag 22. Juni 2012, 11:25
von Dav1d
noisefloor hat geschrieben:Wenn du "nur" wissen willst, wie sowas umgesetzt ist, dann lohnt sich wohl der Blick in de SA-Quellcode

Der ist allerdings ziemlich komplex für einen Anfänger.
Re: Suchen wie bei Sqlalchemy
Verfasst: Freitag 22. Juni 2012, 11:27
von sprudel
Eben, deswegen habe ich hier gefragt. SqlAlchemy ist ja nun wirklich ein Großprojekt

Ganz nebenbei: So ein Anfänger bin ich zwischenzeitlich auch nicht mehr, aber doch reiner Hobbyprogrammierer. Trete deswegen in das eine oder andere Fettnäpfchen (die ein oder andere Friteuse auch ganz gerne)..
Re: Suchen wie bei Sqlalchemy
Verfasst: Freitag 22. Juni 2012, 12:41
von noisefloor
Hallo,
bleibt immer noch die Frage:
noisefloor hat geschrieben:Gut, dann frage ich anders: Was willst du woraus selektieren? Da ist mir nämlich nicht klar...
Gruß, noisefloor