gpt4 book ai didi

python - Flask - SQLAlchemy 操作错误

转载 作者:行者123 更新时间:2023-12-01 17:04:01 24 4
gpt4 key购买 nike

我遇到了以下错误:

sqlalchemy.exc.OperationalError
OperationalError: (OperationalError) no such table: user u'SELECT user.id AS user_id, user.name AS user_name, user.password AS user_password \nFROM user \nWHERE user.id = ?' (1,)

我不确定如何调试它,但我认为它一定会出现,因为它没有加载我已经使用 models.py 文件生成的 db 文件。我已经加载了该数据库文件并确保用户表存在,并且它包含数据,但我不知道如何将我的 flask 应用程序连接到数据库。

这是我事先运行以生成表的 models.py(我没有包含上面的声明):

from datetime import datetime
import os
from sqlalchemy import Column, ForeignKey
from sqlalchemy import Boolean, DateTime, Integer, String, Text
from sqlalchemy.orm import relationship, synonym, backref

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()


""" User """
class User(Base):
__tablename__ = 'user'
id = Column(Integer, primary_key=True)
name = Column(String(200))
password = Column(String(100))

def __init__(self, name, password):
self.name = name
self.password = password

def __repr__(self):
return '<User %r>' % self.name
if __name__ == '__main__':
from datetime import timedelta

from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker

PWD = os.path.abspath(os.curdir)

engine = create_engine('sqlite:///{}/arkaios.db'.format(PWD), echo=True)

Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()

# Add a sample user
user = User(name='Philip House', password="test")
session.add(user)
session.commit()

这是app.py:

from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
from flask import render_template

from arkaios.models import Base, User
from arkaios import config

app = Flask(__name__)
app.config.from_object(config)

db = SQLAlchemy(app)
db.Model = Base

@app.route('/admin/large-group')
def largeGroupOverview():
user = db.session.query(User).filter_by(id=1)
return render_template('largegroup/overview.html', user=user)

@app.route('/admin/large-group/<int:event_id>')
def largeGroupAttendance(event_id):
return render_template('largegroup/attendance.html')

@app.route('/focus')
def largegroup():
return 'Focus work'

最后,app.py 引用下面的 config.py:

import os
PWD = os.path.abspath(os.curdir)

DEBUG=True
SQLALCHEMY_DATABASE_URI = 'sqlite:///{}/arkaios.db'.format(PWD)
SECRET_KEY = 'thisissecret'
SESSION_PROTECTION = 'strong'

如果需要的话,我也可以发布堆栈跟踪!关于如何连接 Flask 和 SQLAlchemy,我在概念上肯定缺少一些东西,但我无法弄清楚。

感谢您的帮助:)

最佳答案

您是否在 python app.py 应用程序之前运行 python models.py 来创建数据库?当您从 app.py 导入文件时,if __name__ == "__main__" 将阻止该部分代码运行。

我还将使用 sqlite3 确保数据库有效并运行 .tables 命令。

关于python - Flask - SQLAlchemy 操作错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22277873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com