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