Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何修复sqlalchemy.exc.InvalidRequestError:一个或多个映射程序未能初始化。。。最初的例外是:viewonly_Python_Sqlalchemy - Fatal编程技术网

Python 如何修复sqlalchemy.exc.InvalidRequestError:一个或多个映射程序未能初始化。。。最初的例外是:viewonly

Python 如何修复sqlalchemy.exc.InvalidRequestError:一个或多个映射程序未能初始化。。。最初的例外是:viewonly,python,sqlalchemy,Python,Sqlalchemy,我有以下app.py: 从烧瓶导入烧瓶 从flask_引导导入引导 从flask_sqlalchemy导入sqlalchemy 从sqlalchemy.dialogs.postgresql导入JSON 导入操作系统 从psycopg2.extras导入Json,输入游标 类配置(对象): SECRET\u KEY=os.environ.get('SECRET\u KEY')或'SECRET\u KEY' SQLALCHEMY\u TRACK\u MODIFICATIONS=False SQLAL

我有以下app.py:

从烧瓶导入烧瓶
从flask_引导导入引导
从flask_sqlalchemy导入sqlalchemy
从sqlalchemy.dialogs.postgresql导入JSON
导入操作系统
从psycopg2.extras导入Json,输入游标
类配置(对象):
SECRET\u KEY=os.environ.get('SECRET\u KEY')或'SECRET\u KEY'
SQLALCHEMY\u TRACK\u MODIFICATIONS=False
SQLALCHEMY\u DATABASE\u URI=os.environ.get('DATABASE\u URL')或
'postgresql+psycopg2://postgres:password@localhost:5432/gkrs_测试'
app=烧瓶(名称)
app.config.from_对象(config)
引导=引导(应用程序)
db=SQLAlchemy(应用程序)
班主任(db.Model):
__tablename_uuu='teacher'
id=db.Column(db.Integer,主键=True)
username=db.Column(db.String(64),unique=True)
email=db.Column(db.String(120),unique=True)
密码\u hash=db.Column(db.String(128))
class=db.relationship('classes',back_populates='teacher',lazy='dynamic')
类别(db.Model):
__tablename_uu='classes'
id=db.Column(db.Integer,主键=True)
teacher=db.Column(db.Integer,db.ForeignKey('teacher.id'))
name=db.Column(db.String(20))
day=db.Column(db.String(20))
时间=分贝列(分贝字符串(20))
students=db.Column(JSON)
Viktorina类(db.型号):
__tablename_uuu='viktorina'
id=db.Column(db.Integer,主键=True)
name=db.Column(db.String(20))
teacher=db.Column(db.Integer,db.ForeignKey('teacher.id'))
questions=db.Column(JSON)
当我转到python控制台并使用:

来自应用程序导入数据库的
>>
>>>来自应用程序导入教师、班级、Viktorina
>>>Teacher.query.get(1)
我得到以下例外情况:

回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“C:\Users\Vlad\PycharmProjects\gkrs-viktorina\venv\lib\site-packages\flask\u-sqlalchemy\\uuuuuuu-init\uuuuuuuuuuu.py”,第512行,在__
映射器=orm.class\u映射器(类型)
文件“C:\Users\Vlad\PycharmProjects\gkrs-viktorina\venv\lib\site-packages\sqlalchemy\orm\base.py”,第451行,在class\u-mapper中
映射器=\u检查\u映射的\u类(类,配置=配置)
文件“C:\Users\Vlad\PycharmProjects\gkrs-viktorina\venv\lib\site-packages\sqlalchemy\orm\base.py”,第430行,在映射类中
映射器。_configure_all()
文件“C:\Users\Vlad\PycharmProjects\gkrs-viktorina\venv\lib\site-packages\sqlalchemy\orm\mapper.py”,第1352行,全部配置
配置映射器()
文件“C:\Users\Vlad\PycharmProjects\gkrs-viktorina\venv\lib\site-packages\sqlalchemy\orm\mapper.py”,第3295行,在configure\u-mappers中
提高e
sqlalchemy.exc.InvalidRequestError:一个或多个映射程序未能初始化-无法继续初始化其他映射程序。触发映射器:“映射的班级教师->教师”。最初的例外是:viewonly
我确信这些表并不是空的,它们至少都有一行。 我如何解决这个问题?我正在使用Postgresql。 我在网上找到的东西没有任何帮助,因为它们都没有viewonly例外

classes = db.relationship('Classes', back_populates='teacher', lazy='dynamic')
您告诉SQLAlchemy在“Classes”模型中创建字段“teacher”,但由于此行原因,该字段已存在于Classes模型中:

teacher = db.Column(db.Integer, db.ForeignKey('teacher.id'))

也许你是想叫班里的那个模范教师id?

我相信这与使用后台人员有关。试着移除它,看看会发生什么。没有做任何事我试着添加这个标志:我希望它是一行,而不是两行