Flask&python3.4数据库模型错误

2024-03-29 09:58:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经和我的应用程序的模型搏斗了一段时间。每一次我似乎“修复”了一件事,另一件事就破裂了。通过谷歌搜索和搜索,我终于找到了这一点,然而,它现在抛出了另一个错误,我不知道为什么。在

from flask import Flask, render_template
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///students.db'
db = SQLAlchemy(app)


class Students(db.Model):
    __tablename__ = 'Students'
    id = db.Column(db.Integer, primary_key=True, unique=True)
    first_name = db.Column(db.String(20), primary_key=False, unique=True)
    last_name = db.Column(db.String(20), primary_key=False, unique=True)
    image = db.Column(db.String(20), primary_key=False, unique=True)

    def __init__(self, id, first_name, last_name, image):
        self.id = id
        self.first_name = first_name
        self.last_name = last_name
        self.image = image

    def __repr__(self):
        return '<Student: {} {}>'.format(self.first_name, self.last_name)

@app.route('/')
def index():
    s = Students.query.all()
    return render_template('index.html', Students=s)


if __name__ == '__main__':
    app.run(debug=True)

在模型中,您将在所有字段上看到unique和{},因为没有它,我将得到以下错误:

^{pr2}$

或者

Column() missing 1 required positional argument: 'primary_key'

现在我在这里读到,既然我是从模型继承的,我不应该包括__tablename__,但是没有它,我会得到这样的错误:

sqlalchemy.exc.InvalidRequestError: Class <class '__main__.Students'> does not have a __table__ or __tablename__ specified and does not inherit from an existing table-mapped class.

在所有这些之后,我终于归结到这个错误,我假设这个错误是因为没有主键?公司名称:

sqlalchemy.exc.ArgumentError: Mapper Mapper|Students|Students could not assemble any primary key columns for mapped table 'Students'

我做错什么了?在


Tags: keynameimageselfidtrueappdb