#python #api #flask
Вопрос:
Как включить proj_techs в качестве пары ключ-значение в мой метод «as_dict». Метод должен возвращать объект с внешними полями. Примером конечной цели является возврат на сторону клиента строки jsonify { «proj_id»: 1, «имя_проекта»: «название», «proj_desc»: «описание проекта», «цель проекта»: «некоторая цель», «proj_aoa»: «область применения в науке», «код proj_src»: «http://123.com’, «proj_techs»: [‘tech1′,’tech2’] }
import os from server import db class Project(db.Model): ''' Project schema ''' id = db.Column(db.Integer, primary_key=True ) proj_name = db.Column(db.String(125), index=True, unique=False) proj_desc = db.Column(db.String(1200), index=True, unique=False) proj_purpose = db.Column(db.String(5000), index=True, unique=False) proj_aoa = db.Column(db.String(200), index=True, unique=False) proj_src_code = db.Column(db.String(200), index=True, unique=False) proj_techs = db.relationship('Technology', backref='project', lazy='dynamic') def __init__(self, id, proj_name, proj_desc, proj_purpose, proj_aoa, proj_src_code): self.id = id self.proj_name = proj_name self.proj_desc = proj_desc self.proj_purpose = proj_purpose self.proj_aoa = proj_aoa self.proj_src_code = proj_src_code def as_dict(self): return { "proj_id": self.id, "proj_name": self.proj_name, "proj_desc": self.proj_desc, "proj_purpose": self.proj_purpose, "proj_aoa": self.proj_aoa, "proj_src_code": self.proj_src_code } def __repr__(self): return f'id: {self.id}, proj_name: {self.proj_name}, proj_desc: {self.proj_desc}, proj_purpose: {self.proj_purpose}, proj_aoa: {self.proj_aoa}, proj_src_code: {self.proj_src_code}' class Technology(db.Model): ''' technology schema ''' id = db.Column(db.Integer, primary_key=True) proj_tech = db.Column(db.String(120), unique=False) project_id = db.Column(db.Integer, db.ForeignKey('project.id')) def __init__(self, proj_tech, project_id): self.proj_tech = proj_tech, self.project_id = project_id def as_str(self): return self.proj_tech if os.path.exists('backend.db'): os.remove('backend.db') db.create_all()