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)
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):
__tablename__ = "fingerprint"
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)
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)

View File

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

Binary file not shown.