Guest User

Untitled

a guest
Dec 18th, 2017
402
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.07 KB | None | 0 0
  1. __________________________________________________________________1_____________________________________________________________________
  2.  
  3. from sqlalchemy import MetaData
  4. from sqlalchemy import create_engine
  5. from sqlalchemy import Column, Integer, String, Numeric, func,ForeignKey
  6. from sqlalchemy.ext.declarative import declarative_base
  7. from sqlalchemy.orm import Session,relationship
  8. import os
  9.  
  10. metadata = MetaData()
  11.  
  12. engine = create_engine("sqlite:///baza.db")
  13.  
  14. Base = declarative_base()
  15.  
  16. class Network(Base):
  17. __tablename__ = 'network'
  18.  
  19. network_id = Column(Integer, primary_key=True)
  20. name = Column(String(100), nullable=False)
  21.  
  22. def __repr__(self):
  23. return "<User(%r, %r)>" % (self.name, self.fullname)
  24.  
  25. Base.metadata.create_all(engine)
  26.  
  27. session = Session(bind=engine)
  28. session.add_all([
  29. Network(name='net1'),
  30. Network(name='net2')
  31. ])
  32. session.commit()
  33.  
  34. _________________________________________________________________2___________________________________________________________________
  35.  
  36. class User(Base):
  37. __tablename__ = 'user'
  38.  
  39. id = Column(Integer, primary_key=True)
  40. name = Column(String)
  41. fullname = Column(String)
  42.  
  43. def __repr__(self):
  44. return "<User(%r, %r)>" % (self.name, self.fullname)
  45.  
  46. Base.metadata.create_all(engine)
  47.  
  48. session.add_all([
  49. User(name='wendy', fullname='Wendy Weathersmith'),
  50. User(name='mary', fullname='Mary Contrary'),
  51. User(name='fred', fullname='Fred Flinstone'),
  52. User(name='ed', fullname='Ed Jones')
  53. ])
  54. session.commit()
  55.  
  56. query = session.query(User.fullname).order_by(User.fullname)
  57. print(query.all())
  58. query = query.filter(User.name.in_(['mary','ed']))
  59. print(query.all())
  60. print(query[1])
  61.  
  62. class Address(Base):
  63. __tablename__ = 'address'
  64.  
  65. id = Column(Integer, primary_key=True)
  66. email_address = Column(String, nullable=False)
  67. user_id = Column(Integer, ForeignKey('user.id'))
  68. user = relationship("User", backref="addresses")
  69.  
  70. def __repr__(self):
  71. return "<Address(%r)>" % self.email_address
  72.  
  73. Base.metadata.create_all(engine)
  74.  
  75. jack = User(name='jack', fullname='Jack Bean')
  76. jack.addresses = [Address(email_address='jack@gmail.com'),
  77. Address(email_address='j25@yahoo.com'),
  78. Address(email_address='jack@hotmail.com')]
  79. session.add(jack)
  80. session.commit()
  81.  
  82. ________________________________________________________________3______________________________________________________________________
  83.  
  84. class Account(Base):
  85. __tablename__ = 'account'
  86.  
  87. id = Column(Integer, primary_key=True)
  88. owner = Column(String(50), nullable=False)
  89. balance = Column(Numeric, default=0)
  90.  
  91. def __repr__(self):
  92. return "<Account(%r, %r)>" % (self.owner, self.balance)
  93.  
  94. class Transaction(Base):
  95. __tablename__ = 'transaction'
  96.  
  97. id = Column(Integer, primary_key=True)
  98. amount = Column(Numeric, default=0)
  99. account_id = Column(Integer, ForeignKey('account.id'))
  100. account = relationship("Account", backref="transactions")
  101.  
  102. def __repr__(self):
  103. return "Transaction: %r" % (self.amount)
  104.  
  105. Base.metadata.create_all(engine)
  106.  
  107. a1=Account(owner = "Jack Jones", balance = 5000)
  108. a2=Account(owner="Ed Rendell", balance=10000)
  109. session.add_all([
  110. a1,
  111. a2,
  112. Transaction(amount=500, account=a1),
  113. Transaction(amount=4500, account=a1),
  114. Transaction(amount=6000, account=a2),
  115. Transaction(amount=4000, account=a2)])
  116.  
  117. session.commit()
  118.  
  119. for account in session.query(Account).all():
  120. print(account.owner)
  121. print(account.balance)
  122. sum = 0
  123. for at in account.transactions:
  124. sum += at.amount
  125. print(sum)
  126.  
  127. ______________________________________________________________4________________________________________________________________________
  128.  
  129. query = session.query(User.name, Address.email_address).join(Address).filter(Address.email_address=="j25@yahoo.com")
  130. print(query)
  131. print (query.all())
  132.  
  133. from sqlalchemy.orm import aliased
  134.  
  135. user_alias1 = aliased(User)
  136. user_alias2 = aliased(User)
  137.  
  138. from sqlalchemy import select
  139.  
  140. query=engine.execute(select([user_alias1.name, user_alias2.name]).distinct().where(user_alias1.name < user_alias2.name))
  141. print (query.fetchall())
  142.  
  143. session.close()
Add Comment
Please, Sign In to add comment