import sys
!"{sys.executable}" -m pip install sqlalchemy
Collecting sqlalchemy Downloading https://files.pythonhosted.org/packages/2b/b2/e6f5c5efc68942edefaa924e8fbea0b32375baa434a511cbf6bb17769cf6/SQLAlchemy-1.3.3.tar.gz (5.9MB) 100% |████████████████████████████████| 5.9MB 1.2MB/s ta 0:00:011 Building wheels for collected packages: sqlalchemy Running setup.py bdist_wheel for sqlalchemy ... done Stored in directory: /Users/user/Library/Caches/pip/wheels/6b/02/e3/7f1149be63131cdf6aaaa3330924a2683bb530188940569d66 Successfully built sqlalchemy Installing collected packages: sqlalchemy Successfully installed sqlalchemy-1.3.3
from sqlalchemy import create_engine
engine = create_engine('sqlite:///db.sqlite', echo=True)
from sqlalchemy.ext.declarative import declarative_base
Base = declarative_base()
from sqlalchemy import Column, Integer, String
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String)
fullname = Column(String)
nickname = Column(String)
def __repr__(self):
return "<User(name='%s', fullname='%s', nickname='%s')>" % (
self.name, self.fullname, self.nickname)
User.__table__
Table('users', MetaData(bind=None), Column('id', Integer(), table=<users>, primary_key=True, nullable=False), Column('name', String(), table=<users>), Column('fullname', String(), table=<users>), Column('nickname', String(), table=<users>), schema=None)
Base.metadata.create_all(engine)
2019-05-17 12:19:29,034 INFO sqlalchemy.engine.base.Engine SELECT CAST('test plain returns' AS VARCHAR(60)) AS anon_1 2019-05-17 12:19:29,035 INFO sqlalchemy.engine.base.Engine () 2019-05-17 12:19:29,037 INFO sqlalchemy.engine.base.Engine SELECT CAST('test unicode returns' AS VARCHAR(60)) AS anon_1 2019-05-17 12:19:29,037 INFO sqlalchemy.engine.base.Engine () 2019-05-17 12:19:29,042 INFO sqlalchemy.engine.base.Engine PRAGMA table_info("users") 2019-05-17 12:19:29,044 INFO sqlalchemy.engine.base.Engine () 2019-05-17 12:19:29,046 INFO sqlalchemy.engine.base.Engine CREATE TABLE users ( id INTEGER NOT NULL, name VARCHAR, fullname VARCHAR, nickname VARCHAR, PRIMARY KEY (id) ) 2019-05-17 12:19:29,047 INFO sqlalchemy.engine.base.Engine () 2019-05-17 12:19:29,050 INFO sqlalchemy.engine.base.Engine COMMIT
ed_user = User(name='ed', fullname='Ed Jones', nickname='edsnickname')
from sqlalchemy.orm import sessionmaker
Session = sessionmaker(bind=engine)
session = Session()
session.add(ed_user)
ed_user.id
session.query(User).first()
2019-05-17 12:23:10,186 INFO sqlalchemy.engine.base.Engine SELECT users.id AS users_id, users.name AS users_name, users.fullname AS users_fullname, users.nickname AS users_nickname FROM users LIMIT ? OFFSET ? 2019-05-17 12:23:10,187 INFO sqlalchemy.engine.base.Engine (1, 0)
<User(name='ed', fullname='Ed Jones', nickname='edsnickname')>
ed_user.id
1