title: What's the difference between Model.query and session.query(Model) in SQLAlchemy?
body: <p>I'm a beginner in SQLAlchemy and found query can be done in 2 method:</p>
  
  <p>Approach 1:</p>
  
  <pre><code>DBSession = scoped_session(sessionmaker())
  class _Base(object):
      query = DBSession.query_property()
  
  Base = declarative_base(cls=_Base)
  
  class SomeModel(Base):
      key   = Column(Unicode, primary_key=True)
      value = Column(Unicode)
  
  # When querying
  result = SomeModel.query.filter(...)
  </code></pre>
  
  <p>Approach 2</p>
  
  <pre><code>DBSession = scoped_session(sessionmaker())
  Base = declarative_base()
  
  class SomeModel(Base):
      key   = Column(Unicode, primary_key=True)
      value = Column(Unicode)
  
  # When querying
  session = DBSession()
  result = session.query(SomeModel).filter(...)
  </code></pre>
  
  <p>Is there any difference between them?</p>