开发者社区 问答 正文

无法使用flask和flask-sqlalchemy查询MySQL数据库中的表

已解决

我无法使用flask-sqlalchemy查询数据库中的表。我已经为表创建了模型,如下所示。

from sqlalchemy.ext.declarative import declarative_base from sqlalchemy import Column, String, Integer, DateTime, Text, VARCHAR, BigInteger

Baza = declarative_base()

class activities(Baza): tablename = 'activities'

id = Column(BigInteger, primary_key=True)
activity_type_id = Column(BigInteger)
academic_year_id = Column(Integer)
description = Column(Text)
start_time = Column(DateTime)
user_id = Column(Integer)
team_id = Column(Integer)
title = Column(VARCHAR)
location = Column(VARCHAR)

def __repr__(self):
    return '<activities(id=%d, activity_type_id=%d, academic_year_id=%d, description=%s, start_time=%s, user_id=%d, team_id=%d, title=%s, location=%s)>' % (self.id, self.activity_type_id, self.academic_year_id, self.description, self.start_time, self.user_id, self.team_id, self.title, self.location)

这是查询表的app.route

def aktivnosti(): data = activities.query.all() return render_template('/aktivnosti.html', data=data)

抛出的错误是“内部服务器错误。服务器遇到内部错误,无法完成您的请求。服务器超载或应用程序中有错误。控制台仅显示没有问题127.0.0.1 - - [08/Dec/2019 23:28:52] "GET /aktivnosti HTTP/1.1" 500 -

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-12-09 18:04:20 516 分享 版权
1 条回答
写回答
取消 提交回答
  • 采纳回答

    我相信我发现了问题所在。我尚未创建用于与模型进行交互的会话。输入代码:

    engine = create_engine('mysql://root:123@localhost/aktivnosti') session_factory = sessionmaker(bind=engine) session = flask_scoped_session(session_factory, app) def aktivnosti(): data = session.query(activities).all()

    正确显示数据

    2019-12-09 18:04:29
    赞同 展开评论