Neu bei sqlalchemy und etwas Anfänger mit Programmierung und Python. Ich wollte einen Tisch abfragen. Es scheint, dass ich die all() - Funktion beim Abfragen verwenden kann, aber nicht filtern kann, ohne eine Klasse zu erstellen.Warum verwenden Sie sqlalchemy deklarative API?
1.) Kann ich filtern, ohne eine Klasse zu erstellen und die deklarative API zu verwenden? Ist das unten aufgeführte Filterbeispiel falsch? 2.) Wann wäre es angebracht, deklarative API in sqlalchemy zu verwenden und wann wäre es nicht angemessen?
import sqlalchemy as sql
from sqlalchemy import Table, Column, Integer, String, MetaData, ForeignKey
from sqlalchemy.orm import sessionmaker
from sqlalchemy.orm import sessionmaker
db = sql.create_engine('postgresql://postgres:[email protected]:5432/postgres')
engine = db.connect()
meta = MetaData(engine)
session = sessionmaker(bind=engine)
session = session()
files = Table('files',meta,
Column('file_id',Integer,primary_key=True),
Column('file_name',String(256)),
Column('query',String(256)),
Column('results',Integer),
Column('totalresults',Integer),
schema='indeed')
session.query(files).all() #ok
session.query(files).filter(files.file_name = 'test.json') #not ok
Danke! Es scheint, dass ich 'execute()' für 'Table'/core-Konstrukte verwenden müsste, da ich ein 'Schlüsselwort kann kein Ausdruck' bekommen kann. – Jimmy
@Jimmy "Schlüsselwort kann kein Ausdruck sein" ist ein SyntaxError, der angibt, dass Sie den Zuweisungsoperator '=' anstelle des Gleichheitsvergleichsoperators '==' verwenden. – univerio
@univerlo Doh! Danke, es funktioniert jetzt. – Jimmy