from flask_sqlalchemy import SQLAlchemy from datetime import datetime db = SQLAlchemy() class Session(db.Model): __tablename__ = 'sessions' id = db.Column(db.Integer, primary_key=True) user = db.Column(db.String) start = db.Column(db.DateTime, default=datetime.utcnow) end = db.Column(db.DateTime) @classmethod def get_current(cls): return Session.query.filter(Session.end.is_(None)).first() @property def interval(self): if self.end: return self.end - self.start return datetime.utcnow() - self.start def finish(self): if not self.end: self.end = datetime.utcnow()