Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ### slide::
- ### title:: Exercises - ORM Querying
- # 1. Produce a Query object representing the list of "fullname" values for
- # all User objects in alphabetical order.
- #
- # 2. call .all() on the query to make sure it works!
- #
- # 3. build a second Query object from the first that also selects
- # only User rows with the name "mary" or "ed".
- #
- # 4. return only the second row of the Query from #3.
- from sqlalchemy.ext.declarative import declarative_base
- Base = declarative_base()
- from sqlalchemy import Column, Integer, String
- from sqlalchemy import create_engine
- from sqlalchemy import or_, and_
- class Network(Base):
- __tablename__ = 'network'
- network_id = Column(Integer, primary_key=True)
- name = Column(String, nullable=False)
- e = create_engine('sqlite://')
- Base.metadata.create_all(e)
- from sqlalchemy.orm import Session
- session = Session(bind=e)
- session.add_all([
- Network(name='net1'),
- Network(name='net2'),
- Network(name='Mary'),
- Network(name='Ed'),
- Network(name='Jo'),
- Network(name='Wendy'),
- ])
- session.commit()
- def __repr__(self):
- return "<Network(%r, %r)>" % (
- self.network_id, self.name
- )
- query = session.query(Network.name).order_by(Network.name)
- print(query.all())
- query = query.filter(
- or_(
- (
- Network.name == 'mary',
- Network.name == 'ed'
- )
- )
- )
- print(query.all())
- #Ответ
- marina@debian:~$ python lab54.py
- [(u'Ed',), (u'Jo',), (u'Mary',), (u'Wendy',), (u'net1',), (u'net2',)]
Add Comment
Please, Sign In to add comment