From 161f48472ae70b54da8583b1136d768617bb8d67 Mon Sep 17 00:00:00 2001 From: Cacahuete Lenovo Ubuntu Date: Tue, 11 Sep 2018 10:46:28 +0200 Subject: [PATCH] =?UTF-8?q?Nouveau=20bac=20=C3=A0=20sable=20pour=20SQLAlch?= =?UTF-8?q?emy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sqla_test.py | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 sqla_test.py diff --git a/sqla_test.py b/sqla_test.py new file mode 100644 index 0000000..642e120 --- /dev/null +++ b/sqla_test.py @@ -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()