ORM works I think

This commit is contained in:
Askill 2020-03-15 23:15:40 +01:00
parent 536a0b2f6d
commit 061ac50612
11 changed files with 35 additions and 3 deletions

Binary file not shown.

Binary file not shown.

View File

@ -28,6 +28,23 @@ class Person(Base):
face = Column('face', LargeBinary) face = Column('face', LargeBinary)
fingerprints = relationship("Fingerprint", foreign_keys='Fingerprint.person_id') fingerprints = relationship("Fingerprint", foreign_keys='Fingerprint.person_id')
def serialize(self):
prints = []
for fingerprint in self.fingerprints:
prints.append(fingerprint.serialize())
data = {
"person_id": self.person_id,
"timestamp": self.timestamp,
"fname": self.fname,
"lname": self.lname,
"yob": self.yob,
"gender": self.gender,
"face": self.face,
"fingerprints": prints
}
return data
class Fingerprint(Base): class Fingerprint(Base):
__tablename__ = "fingerprint" __tablename__ = "fingerprint"
person_id = Column('person_id', Integer, ForeignKey('person.person_id'), primary_key=True) person_id = Column('person_id', Integer, ForeignKey('person.person_id'), primary_key=True)
@ -36,4 +53,13 @@ class Fingerprint(Base):
timestamp = Column('timestamp', DateTime, default=datetime.utcnow) timestamp = Column('timestamp', DateTime, default=datetime.utcnow)
fingerprint = Column('fingerprint', LargeBinary) fingerprint = Column('fingerprint', LargeBinary)
def serialize(self):
data = {
"person_id": self.person_id,
"fingerprint_id": self.fingerprint_id,
"timestamp": self.timestamp,
"fingerprint": self.fingerprint
}
return data
Base.metadata.create_all(engine) Base.metadata.create_all(engine)

View File

@ -3,7 +3,7 @@ import flask
import requests import requests
import application.config as config import application.config as config
import json import json
from application.db import Session, Person from application.db import Session, Person, Fingerprint
class PersonList(Resource): class PersonList(Resource):
def post(self, id): def post(self, id):
@ -19,14 +19,17 @@ class PersonList(Resource):
""" """ """ """
try: try:
session = Session() session = Session()
person = Person(fname="hi") fingerprint = Fingerprint(fingerprint_id=1)
person = Person(fname="hi", fingerprints=[fingerprint])
session.add(fingerprint)
session.add(person) session.add(person)
session.commit() session.commit()
data = list(session.query(Person).all()) data = list(session.query(Person).all())
arr = [] arr = []
for x in data: for x in data:
arr.append(json.loads(x)) arr.append(x.serialize())
print(arr) print(arr)
return flask.make_response(flask.jsonify({'data': arr}), 200) return flask.make_response(flask.jsonify({'data': arr}), 200)

3
run.py
View File

@ -2,3 +2,6 @@ from application import app
app.run(host="0.0.0.0",port='10024', debug=True) app.run(host="0.0.0.0",port='10024', debug=True)

Binary file not shown.