Guest User

Untitled

a guest
Nov 20th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. ### slide::
  2. ### title:: Exercises - ORM Querying
  3. # 1. Produce a Query object representing the list of "fullname" values for
  4. # all User objects in alphabetical order.
  5. #
  6. # 2. call .all() on the query to make sure it works!
  7. #
  8. # 3. build a second Query object from the first that also selects
  9. # only User rows with the name "mary" or "ed".
  10. #
  11. # 4. return only the second row of the Query from #3.
  12. from sqlalchemy.ext.declarative import declarative_base
  13. Base = declarative_base()
  14.  
  15. from sqlalchemy import Column, Integer, String
  16. from sqlalchemy import create_engine
  17. from sqlalchemy import or_, and_
  18. class Network(Base):
  19. __tablename__ = 'network'
  20. network_id = Column(Integer, primary_key=True)
  21. name = Column(String, nullable=False)
  22. e = create_engine('sqlite://')
  23. Base.metadata.create_all(e)
  24.  
  25. from sqlalchemy.orm import Session
  26. session = Session(bind=e)
  27.  
  28. session.add_all([
  29. Network(name='net1'),
  30. Network(name='net2'),
  31. Network(name='Mary'),
  32. Network(name='Ed'),
  33. Network(name='Jo'),
  34. Network(name='Wendy'),
  35. ])
  36. session.commit()
  37.  
  38. def __repr__(self):
  39. return "<Network(%r, %r)>" % (
  40. self.network_id, self.name
  41. )
  42. query = session.query(Network.name).order_by(Network.name)
  43. print(query.all())
  44.  
  45.  
  46. query = query.filter(
  47. or_(
  48. (
  49. Network.name == 'mary',
  50. Network.name == 'ed'
  51. )
  52. )
  53. )
  54. print(query.all())
  55.  
  56. #Ответ
  57. marina@debian:~$ python lab54.py
  58. [(u'Ed',), (u'Jo',), (u'Mary',), (u'Wendy',), (u'net1',), (u'net2',)]
Add Comment
Please, Sign In to add comment