Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Задание 1:
- ```
- from sqlalchemy import create_engine
- import os
- eng = create_engine("sqlite:///some.db")
- e.execute("""create table employee (emp_id integer primary key,emp_name varchar)""")
- e.execute("insert into employee (emp_id, emp_name) values (1,'dilbert')
- r = eng.execute("select * from employee")
- print(r)
- ```
- Задание 2:
- ```
- from sqlalchemy import String, Integer, DateTime, ForeignKey
- from sqlalchemy import inspect
- eng = create_engine("sqlite:///some.db")
- metadata = MetaData()
- net_table = Table('network', metadata,
- Column('network_id', Integer, primary_key=True),
- Column('name', String, nullable=False),
- Column('created_at', DateTime, nullable=False),
- Column('owner_id', Integer, ForeignKey('user.id'))
- )
- user_table = Table('user', metaData,
- Column('id', Integer, primary_key=True),
- Column('name', String),
- Column('fullname', String)
- )
- metadata.create_all(eng)
- metadata2 = MetaData()
- reflected = Table('user', metadata2, autoload=True, autoload_with=eng)
- inspector = inspect(eng)
- inspector.get_columns('network')
- for inspect_table in inspector.get_table_names():
- for inspect_column in inspector.get_columns(inspect_table):
- if inspect_column ['name'] == 'story_id':
- print (inspect_table)
- ```
- Задание 3:
- ```
- from sqlalchemy import String, Integer, DateTime, ForeignKey
- from sqlalchemy import inspect
- from sqlalchemy import select
- from sqlalchemy import create_engine
- from sqlalchemy.orm import aliased
- eng= create_engine("sqlite:///some.db")
- metaData = MetaData()
- user_table = Table('user', metaData,
- Column('id', Integer, primary_key=True),
- Column('username', String(50)),
- Column('fullname', String(50))
- )
- metaData1.create_all(eng)
- print(user_table.c.username == 'ed')
- print(and_(user_table.c.fullname == 'ed',user_table.c.id > 5))
- print(or_(user_table.c.username == 'ed',and_(user_table.c.fullname == 'ed',user_table.c.id > 5)))
- add = user_table.insert().values(username='dilbert', fullname='Dilbert Jones')
- connection = engine.connect()
- r = connection.execute(add)
- print(r)
- sel = select([user_table.c.username, user_table.c.fullname]).\
- where(
- or_(user_table.c.username == 'wendy',user_table.c.username == 'dilbert')
- ).\
- order_by(user_table.c.fullname)
- print(connection.execute(sel)
- addr_table = Table("address", metadata,
- Column('id', Integer, primary_key=True),
- Column('user_id', Integer, ForeignKey('user.id'), nullable=False),
- Column('email_address', String(100), nullable=False)
- )
- metadata.create_all(engine)
- conn.execute(addr_table.insert(), [
- {"user_id": 1, "email_address": "ed@ed.com"},
- {"user_id": 1, "email_address": "ed@gmail.com"},
- {"user_id": 2, "email_address": "jack@yahoo.com"},
- {"user_id": 3, "email_address": "wendy@gmail.com"},
- ])
- text = select([user_table.c.fullname, addr_table.c.email_address]).\
- select_from(user_table.join(addr_table)).\
- where(user_table.c.username=='ed').\
- order_by(addr_table.c.email_address)
- print(text)
- result = user_table.update().values(fullname="Ed Jones").where(user_table.c.username == 'ed')
- print(result)
- ```
- Задание 4:
- ```
- from sqlalchemy import Column, Integer, String, Numeric, func,ForeignKey
- from sqlalchemy.ext.declarative import declarative_base
- from sqlalchemy.orm import Session,relationship
- from sqlalchemy import create_engine
- mybase = declarative_base()
- eng = create_engine("sqlite:///some.db")
- connection=eng.connect()
- class Network(mybase):
- __tablename__ = 'network'
- network_id = Column(Integer, primary_key=True)
- name = Column(String(100), nullable = False)
- def __repr__(self):
- return "<Network(%r, %r)>" % (self.name)
- class User(mybase):
- __tablename__ = 'user'
- id = Column(Integer, primary_key=True)
- name = Column(String)
- fullname = Column(String)
- def __repr__(self):
- return "<User(%r, %r)>" % (self.name, self.fullname)
- class Address(mybase):
- __tablename__ = 'address'
- id = Column(Integer, primary_key=True)
- email_address = Column(String, nullable=False)
- user_id = Column(Integer, ForeignKey('user.id'))
- user = relationship("User", backref="addresses")
- def __repr__(self):
- return "<Address(%r)>" % self.email_address
- class Account(mybase):
- __tablename__ = 'account'
- id = Column(Integer, primary_key=True)
- owner = Column(String(50), nullable = False)
- balance = Column(Numeric, default=0)
- def __repr__(self):
- return "<Account(%r, %r)>" % (self.owner, self.balance)
- class Transaction(myBase):
- __tablename__ = 'transaction'
- id = Column(Integer, primary_key=True)
- amount = Column(Numeric, nullable=False)
- account_id = Column(Integer, ForeignKey(Account.__tablename__ + '.id'), nullable=False)
- account = relationship('Account', backref="transactions")
- def __repr__(self):
- return "Transaction: %r" % (self.amount)
- mybase.metadata.create_all(eng)
- session = Session(bind=eng)
- session.add(Network(name = 'net1'))
- session.add(Network(name = 'net2'))
- session.commit()
- print(eng.execute("select * from network")
- session1 = Session(bind=eng)
- session1.add_all([
- User(name='wendy', fullname='Wendy Weathersmith'),
- User(name='mary', fullname='Mary Contrary'),
- User(name='fred', fullname='Fred Flinstone')
- ])
- session1.commit()
- q1 = session1.query(User).order_by(User.fullname)
- print(q1)
- q2 = q1.filter(User.name.in_(['mary','ed']))
- print(q2)
- session2=Session(bind = eng)
- acc1=Account(owner = "Jack Jones", balance = 5000)
- acc2=Account(owner="Ed Rendell", balance=10000)
- session3.add_all([
- acc1,
- acc2,
- Transaction(amount=500, account=acc1),
- Transaction(amount=4500, account=acc1),
- Transaction(amount=6000, account=acc2),
- Transaction(amount=4000, account=acc2)])
- for account in session2.query(Account).all():
- print(account.owner)
- print(account.balance)
- m = 0
- for at in account.transactions:
- m += at.amount
- print(m)
- ```
Add Comment
Please, Sign In to add comment