Nouveau bac à sable pour SQLAlchemy
This commit is contained in:
parent
4026e7927e
commit
161f48472a
50
sqla_test.py
Normal file
50
sqla_test.py
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
"""Tiny code to test SQLAlchemy"""
|
||||
|
||||
from datetime import datetime
|
||||
|
||||
from sqlalchemy import Column, DateTime, String, Integer, Float, Boolean, ForeignKey
|
||||
from sqlalchemy.orm import relationship, backref
|
||||
from sqlalchemy.ext.declarative import declarative_base
|
||||
|
||||
|
||||
Base = declarative_base()
|
||||
|
||||
|
||||
class Sensor(Base):
|
||||
__tablename__ = 'sensor'
|
||||
address = Column(Integer, primary_key=True)
|
||||
type = Column(String)
|
||||
zone = Column(String)
|
||||
|
||||
|
||||
class Record(Base):
|
||||
__tablename__ = 'record'
|
||||
id = Column(Integer, primary_key=True)
|
||||
datetime = Column(DateTime)
|
||||
address = Column(Integer, ForeignKey('sensor.address'))
|
||||
sensor = relationship(Sensor, backref=backref('records', uselist=True))
|
||||
valid_auth = Column(Boolean)
|
||||
value = Column(Float)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
from sqlalchemy import create_engine
|
||||
from sqlalchemy.orm import sessionmaker
|
||||
|
||||
engine = create_engine('sqlite:///')
|
||||
session = sessionmaker()
|
||||
session.configure(bind=engine)
|
||||
Base.metadata.create_all(engine)
|
||||
|
||||
s = session()
|
||||
|
||||
zones = ['chambre', 'salon', 'cuisine']
|
||||
sensors = [161, 162, 163]
|
||||
for zone, address in zip(zones, sensors):
|
||||
s.add(Sensor(address=address, type='temp', zone=zone))
|
||||
s.commit()
|
||||
|
||||
for sensor in s.query(Sensor).all():
|
||||
print(f"{sensor.address}: type={sensor.type}, zone={sensor.zone}")
|
||||
|
||||
s.close()
|
||||
Loading…
Reference in a new issue