我正在学习 Flask,我想创建一个数据库,其中包含 3 个相互关联的表:公司:有关我工作的公司的信息(编造:))工作:关于我在每家公司担任的角色的信息任务:有关我在每家公司的每份工作中的任务的信息。这是代码:from flask import Flask, render_templatefrom flask_sqlalchemy import SQLAlchemyfrom datetime import datetimeapp = Flask(__name__)app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///work_experience.db'db = SQLAlchemy(app)class Company(db.Model): id = db.Column(db.Integer, primary_key=True) name = db.Column(db.String(100), nullable=False) start_date = db.Column(db.DateTime, nullable=False) end_date = db.Column(db.DateTime, nullable=False, default=None) location = db.Column(db.String(20), nullable=False, default='N/A') jobs = db.relationship('Job', backref='company_')class Job(db.Model): id = db.Column(db.Integer, primary_key=True) position = db.Column(db.String(100), nullable=False) start_date = db.Column(db.DateTime, nullable=False) end_date = db.Column(db.DateTime, nullable=False) company_id = db.Column(db.Integer, db.ForeignKey('company.id')) tasks = db.relationship('Task', backref='job_')class Task(db.Model): id = db.Column(db.Integer, primary_key=True) description = db.Column(db.String(100), nullable=False) start_date = db.Column(db.DateTime, nullable=False) end_date = db.Column(db.DateTime, nullable=False) job_id = db.Column(db.Integer, db.ForeignKey('job.id'))db.create_all()我的想法是有一个 for 循环(最终我将用 Jinja2 编写,但现在 python 代码很好),这样我就可以为每个公司打印我的工作和我完成的任务。当然,我可以将所有数据都放在一张表中,但我正在努力学习。因此输出应该是这样的:for company in Companies: for job in Jobs: for Task in Tasks: print(company, job, task)你能建议我一个聪明而优雅的方式来实现我的目标吗?提前致谢。
1 回答
qq_遁去的一_1
TA贡献1725条经验 获得超7个赞
如果我理解正确的话,您需要一份包含所有公司、工作和任务的列表。你可以通过查询你的数据库来获得这些(假设你已经插入了一些元组):
for c in Company.query.all():
print(c.name)
for r in c.roles:
print('\t',r.position)
for t in r.tasks:
print('\t\t',t.description)
添加回答
举报
0/150
提交
取消