SQLAlchemy: Begrenzung in der gleichen Zeichenfolge wie where

8

Wir versuchen, ein SQL-Query-Frontend für unsere Webanwendung zu aktivieren, das WSGI ist und Python mit SQLAlchemy (Kern, nicht ORM) verwendet, um eine PostgreSQL-Datenbank abzufragen. Wir haben verschiedene Datenebenenfunktionen eingerichtet, um die Abfragekonstruktion zu unterstützen, und wir versuchen nun, etwas einzurichten, das diese Art von Abfrage zulässt:

%Vor%

Im Frontend haben wir ein Textfeld, in das der Benutzer die where-Klausel und die limit-Klausel eintippen kann, so dass die Daten flexibel und dynamisch vom Frontend abgefragt werden können, das heißt, wir wollen ad hoc Abfrage. Also, das Einzige, was wir jetzt aus erster Hand haben:

%Vor%

Und der Benutzer wird eingeben, zum Beispiel:

%Vor%

mit der gleichen Back-End-Funktion. Die Auswahl, Spalte und Tabelle sollten von der Datenschicht verwaltet werden (d. H. Sie weiß, was sie sind, und der Benutzer sollte dies nicht wissen müssen). Mir ist jedoch keine Möglichkeit bekannt, SQLAlchemy dazu zu veranlassen, die where -Klausel und die limit -Klausel automatisch automatisch zu analysieren. Was wir gerade haben, ist eine Funktion, die den Tabellennamen und den Namen der ID-Spalte zurückgeben und dann eine Textabfrage erstellen kann, die an SQLAlchemy als Eingabe an einen text() -Aufruf übergeben wird.

Gibt es eine Möglichkeit, dies mit SQLAlchemy oder einer anderen Bibliothek zu tun? Oder gibt es ein besseres Muster, von dem ich wissen sollte, das das Parsen des SQL nicht einschließt, während diese Funktionalität vom Front-End noch erlaubt?

Vielen Dank! Alle Vorschläge werden sehr geschätzt.

    
Juan Carlos Coto 22.01.2013, 00:48
quelle

1 Antwort

5

Ich bin mir nicht sicher, ob ich folge, aber die allgemeine Verwendung von SQL-Alchemy ist wie folgt:

%Vor%

Dadurch wird die Benutzertabelle abgefragt, um die zehn ältesten Mitglieder namens "Bob"

zurückzugeben     
reptilicus 22.01.2013, 01:52
quelle

Tags und Links