Built a database with flask-sqlalchemy,marshmallow and python.
I will try my best to get as much code as I can, but please bare in mind that too much code and not enough non code wont let me post.
class Specs(db.Model):
id = db.Column(db.Integer, unique=True, autoincrement=True)
qrcode = db.Column(db.String(), unique=False)
sn = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(100), unique=False)
designator = db.Column(db.String(144), unique=False)
subdesignator = db.Column(db.String(20), unique=False)
oil = db.Column(db.String(15), unique=False)
coolant = db.Column(db.String(15), unique=False)
department =db.Column(db.String(20), unique=False)
motor = db.Column(db.String(), unique=False)
hours = db.Column(db.String(),unique=False)
def __init__(self,qrcode,sn, name, designator, subdesignator,oil,coolant,department,motor,hours):
self.qrcode = qrcode
self.sn = sn
self.name = name
self.designator = designator
self.subdesignator = subdesignator
self.oil = oil
self.coolant = coolant
self.department = department
self.motor = motor
self.hours = hours
class SpecsSchema(ma.Schema):
class Meta:
fields = ('qrcode','sn', 'name', 'designator', 'subdesignator','oil','coolant','department','motor','hours')
specs_schema = SpecsSchema()
specss_schema = SpecsSchema(many=True)
class Task(db.Model):
id = db.Column(db.Integer, primary_key=True)
job = db.Column(db.String, unique=False)
instructions = db.Column(db.String, unique=False)
def __init__(self, id, job, instructions):
self.id = id
self.job = job
self.instructions = instructions
class TaskSchema(ma.Schema):
class Meta:
fields = ('id','job', 'instructions' )
task_schema = TaskSchema()
tasks_schema = TaskSchema(many=True)
@app.route('/Task', methods=["POST"])
def add_task():
id = request.json['id']
job = request.json['job']
instructions = request.json['instructions']
new_task = Task(id, job, instructions)
db.session.add(new_task)
db.session.commit()
task = Task.query.get(new_task.id)
return task_schema.jsonify(task)
ERROR
Traceback (most recent call last):
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 1498, in __call__
return self.wsgi_app(environ, start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 1476, in wsgi_app
response = self.handle_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChris.virtualenvsBackend-NKSSbLU1Libsite-packagesflaskapp.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:UsersChrisDesktopMaintTrackerBackendapp.py", line 174, in add_task
id = request.json['id']
^^^^^^^^^^^^^^^^^^
KeyError: 'id'
Everything was working fine until I tried to add a column to one model and it messed up a bunch of things. Now my id column only comes up as null in one model and gives an error in the other.