【问题标题】:Column() got an unexpected keyword argument 'primary_key'Column() 有一个意外的关键字参数“primary_key”
【发布时间】:2019-10-17 15:34:28
【问题描述】:

我正在尝试为 Flask 制作一个小型应用程序。我从 quickstart flask-sqlalchemy 创建了 User 类。但是当我尝试运行应用程序时,我得到一个错误

代码:

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://test:test@localhost/test'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)

class Install(db.Model):
    id = db.Column(db.String, primary_key=True)
    date = db.Column(db.DateTime(), nullable=False)
    service = db.Column(db.String(120), nullable=False)
    theme = db.Column(db.String(120), nullable=False)
    plain = db.Column(db.String(120), nullable=False)
    responsible = db.Column(db.String(120), nullable=False)
    sender = db.Column(db.String(120), nullable=False)

    def __init__(self, id, date, service, theme, plain, responsible):
        self.id = id
        self.date = date
        self.service = service
        self.theme = theme
        self.plain = plain
        self.responsible = responsible
        self.sender = sender

    def __repr__(self):
        return f"|{self.id}|{self.date}|{self.service}|{self.theme}|{self.plain}|{self.responsible}|{self.sender}|"

和错误:

  File ".../src/app/Model.py", line 17, in <module>
    class User(db.Model):
  File ".../src/app/Model.py", line 18, in User
    id = db.Column(db.String, primary_key=True)
TypeError: Column() got an unexpected keyword argument 'primary_key'

【问题讨论】:

    标签: postgresql flask flask-sqlalchemy


    【解决方案1】:

    您应该提供最大字符串长度:

    尝试将您的id = db.Column(db.String, primary_key=True) 替换为id = db.Column(db.String(50), primary_key=True)

    此外,将 id 字段设置为具有自动增量的整数是一种很好的做法

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-09-26
      • 1970-01-01
      • 2016-09-12
      • 2018-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多