Mapper 映射类 Preferencia->preferencias 无法为映射表“preferencias”组装任何主键列

问题描述 投票:0回答:1

我正在使用pythonanywhere网站进行大学项目,在网站上运行flask代码时出现以下错误:

Mapper mapped class Preferencia->preferencias could not assemble any primary key columns for mapped table 'preferencias'

相同的代码在 vscode 中运行完美,没有出现任何错误。

这是为数据库创建列的烧瓶代码:

from flask import Flask, session, render_template, redirect, url_for, request
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.secret_key = '123456'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///preferences.sqlite3'
db = SQLAlchemy(app)
app.app_context().push()


class Preferencia(db.Model):
    __tablename__ = "data"

    
    id = db.Column(db.Integer, primary_key=True) ## adiciona uma linha para numerar os usuários, eu acho?
    nome = db.Column(db.String)
    rpg_fav = db.Column(db.String)
    tipoJogo = db.Column(db.String)
    senha = db.Column(db.String)
    
    def __init__(self, nome, rpg_fav, tipoJogo, senha):
        self.nome = nome
        self.rpg_fav = rpg_fav
        self.tipoJogo = tipoJogo
        self.senha = senha

可以肯定的是,我在记事本中打开了数据库,一切看起来都很正常!另外,我已经使用 debug=True 启动了应用程序,以查看它是否有其他错误,但没有任何帮助。

if __name__ == "__main__":
    db.create_all()
    app.run(debug=True)
python flask flask-sqlalchemy pythonanywhere
1个回答
0
投票

如果您将代码作为 Web 应用程序运行,则

if __name__ == '__main__'
中的代码将不会被执行 - 仅当您通过 Python 直接运行该文件时才会执行。

© www.soinside.com 2019 - 2024. All rights reserved.