ORM works I think

This commit is contained in:
Askill 2020-03-15 23:15:40 +01:00
parent 536a0b2f6d
commit e2e076ff8f
12 changed files with 37 additions and 3 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
__pycache__/

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.