2016-04-04 16 views
0

SQLAlchemy da SELECT simulasyonu nasıl yapılır? Birkaç parametre alan ve bu değerleri içeren bir satır döndüren bir işlev oluşturmak istiyorum ancak SELECT yapamıyorum.SQLAlchemy - Cerain satırları nasıl seçilir?

Bulduğum tek yol aşağıda, ancak SQLAlchemy modülünde metadata bulamıyorum.

DÜZENLEME: BoundMetaData yüzden MetaData uygun kullanımdan kaldırıldı anladım ama Select has no len

# -*- coding: utf-8 -*- 
import sqlalchemy 
from sqlalchemy import Column, Table 
from sqlalchemy import UniqueConstraint 
from sqlalchemy import create_engine 
from sqlalchemy.exc import IntegrityError 
from sqlalchemy.ext.declarative import declarative_base 

engine = create_engine('sqlite:///db.db', echo=False) 
Base = declarative_base() 

s = sqlalchemy.orm.Session(engine) 


class Flight(Base): 
    __tablename__ = 'flights' 

    id = Column(sqlalchemy.Integer, primary_key=True) 
    destination_from = Column(sqlalchemy.String) 
    destination_to = Column(sqlalchemy.String) 
    creation_date = Column(sqlalchemy.Date) 
    start_date = Column(sqlalchemy.Date) 
    return_date = Column(sqlalchemy.Date) 
    price = Column(sqlalchemy.Float) 
    filename = Column(sqlalchemy.String) 
    bought_days_before = Column(sqlalchemy.Integer) 

    __table_args__ = (
     UniqueConstraint('creation_date', 'destination_from', 'destination_to', 'start_date', 'return_date', 'price'), 
    ) 


Base.metadata.create_all(engine) 


def insert_into_flights(**kwargs): 
    s.add(Flight(**kwargs)) 
    try: 
     s.commit() 
    except IntegrityError as e: 
     s.rollback() 


def get_prices(date_from, days, bought_days_before, destination, min=True, avg=False): 
    flights = Table('flights', metadata ,autoload=True 
       ) 
    print len(flights.select()) 
+0

Bkz olduğunu söylüyor "Benzetmek" ile ne demek istiyorsun? Hangi amaçla "taklit" etmeye çalışıyorsun? – univerio

+0

Sadece yanlış bir kelime. Jesse Baker'ın yanıtladığı gibi SELECT yapmak istedim. –

cevap

2
s.query(Flight).filter(Flight.id==34).all() 

Bu kimliğe sahip Flight seçerek örnek 34. SQLAlchemy docs