Могу ли я использовать Python-модуль Pygal для визуализации данных из базы данных SQLalchemy? - PullRequest
0 голосов
/ 25 мая 2018

Как я могу убедить Pygal вытащить данные из 2 таблиц в базе данных SQLAlchemy?

Это мои модели:

class PlannedPost(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(30), nullable=False, default='planned')
    category = db.Column(db.String(30), nullable=False, default=None)
    name = db.Column(db.String(30), nullable=True)
    planned_amount = db.Column(db.Float, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    date_period = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    comments = db.Column(db.Text, nullable=True)

    def __repr__(self):
        return f"Post('{self.title}, '{self.category}'\
        , '{self.name}', '{self.planned_amount}'\
        , '{self.date_period}', '{self.comments}')"

class ActualPost(db.Model):
    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    title = db.Column(db.String(30), nullable=False, default='actual')
    category = db.Column(db.String(30), nullable=False, default=None)
    actual_amount_name = db.Column(db.String(30), nullable=True)
    actual_amount = db.Column(db.Float, nullable=False)
    user_id = db.Column(db.Integer, db.ForeignKey('user.id'), nullable=False)
    date_posted = db.Column(db.DateTime, nullable=False, default=datetime.utcnow)
    comments = db.Column(db.Text, nullable=True)

    def __repr__(self):
        return f"ActualPost('{self.title}, '{self.category}'\
        , '{self.actual_amount_name}', '{self.actual_amount}'\
        , '{self.date_posted}', '{self.comments}')"

И это тот маршрут, который я придумал, которыйЯ знаю, что это неправильно, потому что кажется, что Pygal может использовать только списки.

@posts.route("/graphing")
def graphing():
    planned = PlannedPost.query
    actual = ActualPost.query
    graph = pygal.Bar()
    graph.title = 'Planned Values vs Actual Values'
    graph.x_labels = planned.title
    graph.add('Planned', [planned.planned_amount])
    graph.add('Actual', [actual.actual_amount])
    graph_data = graph.render_data_uri()
    return render_template('graphing.html', graph_data=graph_data)

1 Ответ

0 голосов
/ 07 июня 2018

Ответ на вопрос «да».Можно визуализировать данные из базы данных с помощью Pygal.

См. Этот вопрос для примера кода: Python Диаграмма Pygal, извлекающая данные из базы данных, не соответствующие значениям меток

...