SQLAlchemy 2.0 Dokumentation
SQLAlchemy Core
- API für SQL-Anweisungen und Ausdrücke
- Spaltenelemente und Ausdrücke
- Operatorenreferenz
- SELECT und verwandte Konstrukte
- Einfügen, Aktualisieren, Löschen
- SQL- und generische Funktionen
- Benutzerdefinierte SQL-Konstrukte und Kompilierungserweiterung
- Expression Serializer Extension
- Grundlegende Konstrukte der SQL-Ausdruckssprache
- Besucher- und Traversierungs-Hilfsprogramme¶
ExternalTraversalInternalTraversalInternalTraversal.dp_annotations_keyInternalTraversal.dp_anon_nameInternalTraversal.dp_booleanInternalTraversal.dp_clauseelementInternalTraversal.dp_clauseelement_listInternalTraversal.dp_clauseelement_tupleInternalTraversal.dp_clauseelement_tuplesInternalTraversal.dp_dialect_optionsInternalTraversal.dp_dml_multi_valuesInternalTraversal.dp_dml_ordered_valuesInternalTraversal.dp_dml_valuesInternalTraversal.dp_fromclause_canonical_column_collectionInternalTraversal.dp_fromclause_ordered_setInternalTraversal.dp_has_cache_keyInternalTraversal.dp_has_cache_key_listInternalTraversal.dp_has_cache_key_tuplesInternalTraversal.dp_ignoreInternalTraversal.dp_inspectableInternalTraversal.dp_inspectable_listInternalTraversal.dp_multiInternalTraversal.dp_multi_listInternalTraversal.dp_named_ddl_elementInternalTraversal.dp_operatorInternalTraversal.dp_plain_dictInternalTraversal.dp_plain_objInternalTraversal.dp_prefix_sequenceInternalTraversal.dp_propagate_attrsInternalTraversal.dp_statement_hint_listInternalTraversal.dp_stringInternalTraversal.dp_string_clauseelement_dictInternalTraversal.dp_string_listInternalTraversal.dp_string_multi_dictInternalTraversal.dp_table_hint_listInternalTraversal.dp_typeInternalTraversal.dp_unknown_structure
Visitableanon_mapcloned_traverse()iterate()replacement_traverse()traverse()traverse_using()
- Schema Definition Language
- SQL Datentyp-Objekte
- Engine und Connection verwenden
- Grundlagen der Core API
Projektversionen
- Vorheriger: SQL Expression Language Foundational Constructs
- Nächster: Schema Definition Language
- Nach oben: Startseite
- Auf dieser Seite
- Besucher- und Traversal-Dienstprogramme
ExternalTraversalInternalTraversalInternalTraversal.dp_annotations_keyInternalTraversal.dp_anon_nameInternalTraversal.dp_booleanInternalTraversal.dp_clauseelementInternalTraversal.dp_clauseelement_listInternalTraversal.dp_clauseelement_tupleInternalTraversal.dp_clauseelement_tuplesInternalTraversal.dp_dialect_optionsInternalTraversal.dp_dml_multi_valuesInternalTraversal.dp_dml_ordered_valuesInternalTraversal.dp_dml_valuesInternalTraversal.dp_fromclause_canonical_column_collectionInternalTraversal.dp_fromclause_ordered_setInternalTraversal.dp_has_cache_keyInternalTraversal.dp_has_cache_key_listInternalTraversal.dp_has_cache_key_tuplesInternalTraversal.dp_ignoreInternalTraversal.dp_inspectableInternalTraversal.dp_inspectable_listInternalTraversal.dp_multiInternalTraversal.dp_multi_listInternalTraversal.dp_named_ddl_elementInternalTraversal.dp_operatorInternalTraversal.dp_plain_dictInternalTraversal.dp_plain_objInternalTraversal.dp_prefix_sequenceInternalTraversal.dp_propagate_attrsInternalTraversal.dp_statement_hint_listInternalTraversal.dp_stringInternalTraversal.dp_string_clauseelement_dictInternalTraversal.dp_string_listInternalTraversal.dp_string_multi_dictInternalTraversal.dp_table_hint_listInternalTraversal.dp_typeInternalTraversal.dp_unknown_structure
Visitableanon_mapcloned_traverse()iterate()replacement_traverse()traverse()traverse_using()
Besucher- und Traversierungs-Hilfsprogramme¶
Das Modul sqlalchemy.sql.visitors besteht aus Klassen und Funktionen, die dazu dienen, eine SQL-Ausdrucksstruktur generisch zu traversieren. Dies ist nicht unähnlich dem Python-Modul ast, da es ein System darstellt, mit dem ein Programm auf jede Komponente eines SQL-Ausdrucks angewendet werden kann. Häufige Zwecke hierfür sind das Auffinden verschiedener Arten von Elementen wie Table oder BindParameter-Objekten sowie das Ändern des Zustands der Struktur, wie z. B. das Ersetzen bestimmter FROM-Klauseln durch andere.
Hinweis
Das Modul sqlalchemy.sql.visitors ist eine interne API und nicht vollständig öffentlich. Es kann sich ändern und funktioniert möglicherweise nicht wie erwartet für Nutzungsmuster, die nicht zu den internen Zwecken von SQLAlchemy gehören.
Das Modul sqlalchemy.sql.visitors ist Teil der internen Abläufe von SQLAlchemy und wird normalerweise nicht von der aufrufenden Anwendung verwendet. Es wird jedoch in bestimmten Ausnahmefällen verwendet, z. B. beim Erstellen von Caching-Routinen oder beim Erstellen benutzerdefinierter SQL-Ausdrücke mithilfe der Custom SQL Constructs and Compilation Extension.
Besucher-/Traversierungs-Schnittstelle und Bibliotheksfunktionen.
| Objektname | Beschreibung |
|---|---|
Alias von |
|
cloned_traverse(obj, opts, visitors) |
Klonen Sie die gegebene Ausdrucksstruktur und ermöglichen Sie Modifikationen durch Besucher für veränderbare Objekte. |
Basisklasse für Besucherobjekte, die externe Traversierung mithilfe der Funktion |
|
Definiert Besuchersymbole, die für die interne Traversierung verwendet werden. |
|
iterate(obj[, opts]) |
Durchlaufen Sie die gegebene Ausdrucksstruktur und geben Sie einen Iterator zurück. |
replacement_traverse(obj, opts, replace) |
Klonen Sie die gegebene Ausdrucksstruktur und ermöglichen Sie den Ersatz von Elementen durch eine gegebene Ersatzfunktion. |
traverse(obj, opts, visitors) |
Durchlaufen und besuchen Sie die gegebene Ausdrucksstruktur mit dem Standarditerator. |
traverse_using(iterator, obj, visitors) |
Besuchen Sie die gegebene Ausdrucksstruktur mithilfe des gegebenen Iterators von Objekten. |
Basisklasse für besuchbare Objekte. |
- class sqlalchemy.sql.visitors.ExternalTraversal¶
Basisklasse für Besucherobjekte, die externe Traversierung mithilfe der Funktion
traverse()durchführen können.Die direkte Verwendung der Funktion
traverse()wird normalerweise bevorzugt.Mitglieder
Klassensignatur
class
sqlalchemy.sql.visitors.ExternalTraversal(sqlalchemy.util.langhelpers.MemoizedSlots)-
method
sqlalchemy.sql.visitors.ExternalTraversal.chain(visitor: ExternalTraversal) → _ExtT¶ Verkettet einen zusätzlichen ExternalTraversal an diesen ExternalTraversal.
Der verkettete Besucher erhält alle Besuchereignisse nach diesem.
-
method
sqlalchemy.sql.visitors.ExternalTraversal.iterate(obj: ExternallyTraversible | None) → Iterator[ExternallyTraversible]¶ Durchlaufen Sie die gegebene Ausdrucksstruktur und geben Sie einen Iterator aller Elemente zurück.
-
method
sqlalchemy.sql.visitors.ExternalTraversal.traverse(obj: ExternallyTraversible | None) → ExternallyTraversible | None¶ Durchlaufen und besuchen Sie die gegebene Ausdrucksstruktur.
-
attribute
sqlalchemy.sql.visitors.ExternalTraversal.visitor_iterator¶ Durchlaufen Sie diesen Besucher und jeden „verketteten“ Besucher.
-
method
- class sqlalchemy.sql.visitors.InternalTraversal¶
Definiert Besuchersymbole, die für die interne Traversierung verwendet werden.
Die Klasse
InternalTraversalwird auf zwei Arten verwendet. Zum einen kann sie als Oberklasse für ein Objekt dienen, das die verschiedenen Besuchermethoden der Klasse implementiert. Zum anderen werden die Symbole selbst vonInternalTraversalinnerhalb der Sammlung_traverse_internalsverwendet. Zum Beispiel definiert das ObjektCase_traverse_internalsalsclass Case(ColumnElement[_T]): _traverse_internals = [ ("value", InternalTraversal.dp_clauseelement), ("whens", InternalTraversal.dp_clauseelement_tuples), ("else_", InternalTraversal.dp_clauseelement), ]
Oben gibt die Klasse
Caseihren internen Zustand als die Attributevalue,whensundelse_an. Sie verweisen jeweils auf eineInternalTraversal-Methode, die den Datentyp angibt, auf den sich jedes Attribut bezieht.Unter Verwendung der Struktur
_traverse_internalsverfügen Objekte vom TypInternalTraversibleüber die folgenden automatisch implementierten MethodenHasTraverseInternals.get_children()HasTraverseInternals._copy_internals()HasCacheKey._gen_cache_key()
Unterklassen können diese Methoden auch direkt implementieren, insbesondere die Methode
HasTraverseInternals._copy_internals(), wenn spezielle Schritte erforderlich sind.Neu in Version 1.4.
Mitglieder
dp_annotations_key, dp_anon_name, dp_boolean, dp_clauseelement, dp_clauseelement_list, dp_clauseelement_tuple, dp_clauseelement_tuples, dp_dialect_options, dp_dml_multi_values, dp_dml_ordered_values, dp_dml_values, dp_fromclause_canonical_column_collection, dp_fromclause_ordered_set, dp_has_cache_key, dp_has_cache_key_list, dp_has_cache_key_tuples, dp_ignore, dp_inspectable, dp_inspectable_list, dp_multi, dp_multi_list, dp_named_ddl_element, dp_operator, dp_plain_dict, dp_plain_obj, dp_prefix_sequence, dp_propagate_attrs, dp_statement_hint_list, dp_string, dp_string_clauseelement_dict, dp_string_list, dp_string_multi_dict, dp_table_hint_list, dp_type, dp_unknown_structure
Klassensignatur
class
sqlalchemy.sql.visitors.InternalTraversal(enum.Enum)-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_annotations_key = 'AK'¶ Besuchen Sie das Element _annotations_cache_key.
Dies ist ein Wörterbuch mit zusätzlichen Informationen zu einem ClauseElement, die seine Rolle modifizieren. Es sollte bei Vergleichen oder Caching von Objekten einbezogen werden, die Erstellung dieses Schlüssels ist jedoch relativ teuer. Besucher sollten zuerst das "_annotations"-Dictionary auf Nicht-None prüfen, bevor sie diesen Schlüssel erstellen.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_anon_name = 'AN'¶ Besuchen Sie einen potenziell "anonymisierten" Zeichenfolgenwert.
Der Zeichenfolgenwert gilt als signifikant für die Erstellung von Cache-Schlüsseln.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_boolean = 'B'¶ Besuchen Sie einen booleschen Wert.
Der boolesche Wert gilt als signifikant für die Erstellung von Cache-Schlüsseln.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement = 'CE'¶ Besuchen Sie ein
ClauseElement-Objekt.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_list = 'CL'¶ Besuchen Sie eine Liste von
ClauseElement-Objekten.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuple = 'CT'¶ Besuchen Sie ein Tupel von
ClauseElement-Objekten.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_clauseelement_tuples = 'CTS'¶ Besuchen Sie eine Liste von Tupeln, die
ClauseElement-Objekte enthalten.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_dialect_options = 'DO'¶ Besuchen Sie eine Dialektoptionen-Struktur.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_dml_multi_values = 'DML_MV'¶ Besuchen Sie die Liste von Dictionaries der `values()`-Methode eines
Insert-Objekts, die mehrere Werte aufnehmen kann.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_dml_ordered_values = 'DML_OV'¶ Besuchen Sie die Liste von geordneten Tupeln der `values()`-Methode eines
Update-Objekts.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_dml_values = 'DML_V'¶ Besuchen Sie das Dictionary der `values()`-Methode eines
ValuesBase(z. B. Insert oder Update) -Objekts.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_canonical_column_collection = 'FC'¶ Besuchen Sie ein
FromClause-Objekt im Kontext des Attributscolumns.Die Spaltensammlung ist "kanonisch", was bedeutet, dass sie der ursprünglich definierte Speicherort der
ColumnClause-Objekte ist. Derzeit bedeutet dies, dass das besuchte Objekt einTableClause- oderTable-Objekt ist.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_fromclause_ordered_set = 'CO'¶ Besuchen Sie eine geordnete Menge von
FromClause-Objekten.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key = 'HC'¶ Besuchen Sie ein
HasCacheKey-Objekt.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_list = 'HL'¶ Besuchen Sie eine Liste von
HasCacheKey-Objekten.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_has_cache_key_tuples = 'HT'¶ Besuchen Sie eine Liste von Tupeln, die
HasCacheKey-Objekte enthalten.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_ignore = 'IG'¶ Geben Sie ein Objekt an, das vollständig ignoriert werden soll.
Dies gilt derzeit für das Caching von Funktionsargumenten, bei denen einige Argumente nicht als Teil eines Cache-Schlüssels betrachtet werden sollen.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_inspectable = 'IS'¶ Besuchen Sie ein inspizierbares Objekt, dessen Rückgabewert ein
HasCacheKey-Objekt ist.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_inspectable_list = 'IL'¶ Besuchen Sie eine Liste von inspizierbaren Objekten, die bei der Inspektion HasCacheKey-Objekte sind.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_multi = 'M'¶ Besuchen Sie ein Objekt, das ein
HasCacheKeyoder ein einfaches hashbares Objekt sein kann.
-
attribute
sqlalchemy.sql.visitors.InternalTraversal.dp_multi_list = 'MT'¶ Besuchen Sie ein Tupel, das Elemente enthält, die
HasCacheKeyoder einfache hashbare Objekte sein können.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_named_ddl_element = 'DD'¶ Besucht ein einfaches benanntes DDL-Element.
Das von dieser Methode verwendete aktuelle Objekt ist die
Sequence.Das Objekt wird nur in Bezug auf seinen Namen als wichtig für die Cache-Schlüsselgenerierung betrachtet, nicht jedoch in Bezug auf andere Aspekte.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_operator = 'O'¶ Besucht einen Operator.
Der Operator ist eine Funktion aus dem Modul
sqlalchemy.sql.operators.Der Operatorwert wird als signifikant für die Cache-Schlüsselgenerierung betrachtet.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_plain_dict = 'PD'¶ Besucht ein Dictionary mit String-Schlüsseln.
Die Schlüssel des Dictionaries sollten Strings sein, die Werte sollten unveränderlich und hashbar sein. Das Dictionary wird als signifikant für die Cache-Schlüsselgenerierung betrachtet.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_plain_obj = 'PO'¶ Besucht ein einfaches Python-Objekt.
Der Wert sollte unveränderlich und hashbar sein, z. B. eine Ganzzahl. Der Wert wird als signifikant für die Cache-Schlüsselgenerierung betrachtet.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_prefix_sequence = 'PS'¶ Besucht die Sequenz, die durch
HasPrefixesoderHasSuffixesdargestellt wird.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_propagate_attrs = 'PA'¶ Besucht das Propagate-Attrs-Dictionary. Dies ist fest auf die spezifischen Elemente codiert, auf die wir derzeit Wert legen.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_statement_hint_list = 'SH'¶ Besucht die Sammlung
_statement_hintseinesSelect-Objekts.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_string = 'S'¶ Besucht einen einfachen String-Wert.
Beispiele hierfür sind Tabellen- und Spaltennamen, gebundene Parameternamen, Schlüsselwörter wie "UNION", "UNION ALL".
Der Zeichenfolgenwert gilt als signifikant für die Erstellung von Cache-Schlüsseln.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_string_clauseelement_dict = 'CD'¶ Besucht ein Dictionary von String-Schlüsseln zu
ClauseElement-Objekten.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_string_list = 'SL'¶ Besucht eine Liste von Strings.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_string_multi_dict = 'MD'¶ Besucht ein Dictionary von String-Schlüsseln zu Werten, die entweder einfach unveränderlich/hashbar oder
HasCacheKey-Objekte sein können.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_table_hint_list = 'TH'¶ Besucht die Sammlung
_hintseinesSelect-Objekts.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_type = 'T'¶ Besucht ein
TypeEngine-ObjektDas Typobjekt wird als signifikant für die Cache-Schlüsselgenerierung betrachtet.
-
attribut
sqlalchemy.sql.visitors.InternalTraversal.dp_unknown_structure = 'UK'¶ Besucht eine unbekannte Struktur.
- klasse sqlalchemy.sql.visitors.Visitable¶
Basisklasse für besuchbare Objekte.
Visitablewird zur Implementierung der Dispatch-Funktionen des SQL-Compilers verwendet. Andere Formen der Traversierung, wie z. B. für die Cache-Schlüsselgenerierung, werden separat unter Verwendung der SchnittstelleHasTraverseInternalsimplementiert.
-
attribut
sqlalchemy.sql.visitors..sqlalchemy.sql.visitors.anon_map¶ Alias von
cache_anon_map
- funktion sqlalchemy.sql.visitors.cloned_traverse(obj: ExternallyTraversible | None, opts: Mapping[str, Any], visitors: Mapping[str, Callable[[Any], None]]) → ExternallyTraversible | None¶
Klonen Sie die gegebene Ausdrucksstruktur und ermöglichen Sie Modifikationen durch Besucher für veränderbare Objekte.
Die Verwendung von Traversierung ist dieselbe wie die von
traverse(). Die im Wörterbuchvisitorsenthaltenen Besucherfunktionen können während der Traversierung auch die internen Zustände der gegebenen Struktur ändern.Die Funktion
cloned_traverse()übergibt keine Objekte, die Teil der SchnittstelleImmutablesind, an die Besuchs-Methoden (dazu gehören hauptsächlichColumnClause,Column,TableClauseundTable-Objekte). Da diese Traversierung nur die In-Place-Mutation von Objekten ermöglichen soll, werdenImmutable-Objekte übersprungen. Die MethodeImmutable._clone()wird weiterhin für jedes Objekt aufgerufen, um zu ermöglichen, dass Objekte sich selbst durch ein anderes Objekt ersetzen, basierend auf einer Kopie ihrer internen Bestandteile (z. B. eineColumnClause, die ihre Subquery klont, um eine neueColumnClausezurückzugeben).Geändert in Version 2.0: Die Funktion
cloned_traverse()lässt Objekte aus, die Teil der SchnittstelleImmutablesind.Das zentrale API-Feature, das von den Funktionen
cloned_traverse()undreplacement_traverse()verwendet wird, zusätzlich zur FunktionClauseElement.get_children(), die zur Iteration verwendet wird, ist die MethodeClauseElement._copy_internals(). Damit eineClauseElement-Struktur korrekt geklont und durch traversiert werden kann, muss sie in der Lage sein, eine Klonfunktion in ihre internen Member zu übergeben, um Kopien davon zu erstellen.
- funktion sqlalchemy.sql.visitors.iterate(obj: ExternallyTraversible | None, opts: Mapping[str, Any] = {}) → Iterator[ExternallyTraversible]¶
Durchlaufen Sie die gegebene Ausdrucksstruktur und geben Sie einen Iterator zurück.
Die Traversierung ist auf Breitensuche konfiguriert.
Das zentrale API-Feature, das von der Funktion
iterate()verwendet wird, ist die MethodeClauseElement.get_children()vonClauseElement-Objekten. Diese Methode sollte alleClauseElement-Objekte zurückgeben, die mit einem bestimmtenClauseElement-Objekt verbunden sind. Zum Beispiel wird eineCase-Struktur auf eine Reihe vonColumnElement-Objekten innerhalb ihrer "whens"- und "else_"-Mitgliedsvariablen verweisen.- Parameter:
obj¶ –
ClauseElement-Struktur, die traversiert werden sollopts¶ – Dictionary mit Iterationsoptionen. Dieses Dictionary ist in moderner Verwendung normalerweise leer.
- funktion sqlalchemy.sql.visitors.replacement_traverse(obj: ExternallyTraversible | None, opts: Mapping[str, Any], replace: _TraverseTransformCallableType[Any]) → ExternallyTraversible | None¶
Klonen Sie die gegebene Ausdrucksstruktur und ermöglichen Sie den Ersatz von Elementen durch eine gegebene Ersatzfunktion.
Diese Funktion ähnelt stark der Funktion
cloned_traverse(), nur dass anstelle eines Dictionaries von Besuchern alle Elemente bedingungslos in die gegebene Ersetzungsfunktion übergeben werden. Die Ersetzungsfunktion hat dann die Möglichkeit, ein völlig neues Objekt zurückzugeben, das das gegebene ersetzt. Wenn sieNonezurückgibt, bleibt das Objekt unverändert.Der Unterschied in der Verwendung zwischen
cloned_traverse()undreplacement_traverse()besteht darin, dass im ersteren Fall ein bereits geklontes Objekt an die Besucherfunktion übergeben wird und die Besucherfunktion dann den internen Zustand des Objekts manipulieren kann. Im letzteren Fall sollte die Besucherfunktion nur ein völlig anderes Objekt zurückgeben oder nichts tun.Der Anwendungsfall für
replacement_traverse()ist der Ersatz einer FROM-Klausel innerhalb einer SQL-Struktur durch eine andere, was ein häufiger Anwendungsfall innerhalb des ORM ist.
- funktion sqlalchemy.sql.visitors.traverse(obj: ExternallyTraversible | None, opts: Mapping[str, Any], visitors: Mapping[str, Callable[[Any], None]]) → ExternallyTraversible | None¶
Durchlaufen und besuchen Sie die gegebene Ausdrucksstruktur mit dem Standarditerator.
z. B.
from sqlalchemy.sql import visitors stmt = select(some_table).where(some_table.c.foo == "bar") def visit_bindparam(bind_param): print("found bound value: %s" % bind_param.value) visitors.traverse(stmt, {}, {"bindparam": visit_bindparam})
Die Iteration von Objekten verwendet die Funktion
iterate(), die eine Breitensuche unter Verwendung eines Stacks durchführt.- Parameter:
obj¶ –
ClauseElement-Struktur, die traversiert werden sollopts¶ – Dictionary mit Iterationsoptionen. Dieses Dictionary ist in moderner Verwendung normalerweise leer.
visitors¶ – Dictionary mit Besucherfunktionen. Das Dictionary sollte Strings als Schlüssel haben, die jeweils dem
__visit_name__eines bestimmten Typs von SQL-Ausdrucksobjekt entsprechen, und callable Funktionen als Werte, von denen jede eine Besucherfunktion für diesen Objekttyp darstellt.
- funktion sqlalchemy.sql.visitors.traverse_using(iterator: Iterable[ExternallyTraversible], obj: ExternallyTraversible | None, visitors: Mapping[str, Callable[[Any], None]]) → ExternallyTraversible | None¶
Besuchen Sie die gegebene Ausdrucksstruktur mithilfe des gegebenen Iterators von Objekten.
traverse_using()wird normalerweise intern als Ergebnis der Funktiontraverse()aufgerufen.- Parameter:
iterator¶ – ein iterierbares Objekt oder eine Sequenz, die
ClauseElement-Strukturen liefert; der Iterator wird als Produkt der Funktioniterate()angenommen.obj¶ – das
ClauseElement, das als Ziel der Funktioniterate()verwendet wurde.visitors¶ – Dictionary mit Besucherfunktionen. Siehe
traverse()für Details zu diesem Dictionary.
Siehe auch
Die Designs von flambé! dem Drachen und Der Alchemist wurden von Rotem Yaari erstellt und großzügig gespendet.
Erstellt mit Sphinx 7.2.6. Dokumentation zuletzt generiert: Di 11 Mär 2025 14:40:17 EDT