from sqlalchemy import Table, Column, ForeignKey, Integer, Float, String, DateTime from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import relationship # =========================================================================== # Declare ORM Base = declarative_base() # --------------------------------------------------------------------------- # Registered students # --------------------------------------------------------------------------- class Student(Base): __tablename__ = 'students' id = Column(String, primary_key=True) name = Column(String) password = Column(String) # --- answers = relationship('Answer', back_populates='student') def __repr__(self): return f'''Student: id: "{self.id}" name: "{self.name}" password: "{self.password}"''' # --------------------------------------------------------------------------- # Table with every answer given # --------------------------------------------------------------------------- class Answer(Base): __tablename__ = 'answers' id = Column(Integer, primary_key=True) # auto_increment ref = Column(String) grade = Column(Float) starttime = Column(String) finishtime = Column(String) student_id = Column(String, ForeignKey('students.id')) # --- student = relationship('Student', back_populates='answers') def __repr__(self): return '''Question: id: "{self.id}" ref: "{self.ref}" grade: "{self.grade}" starttime: "{self.starttime}" finishtime: "{self.finishtime}" student_id: "{self.student_id}"'''