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

Code: Alles auswählen

if foo=="bar":
    do_something()
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