【问题标题】:TypeError: Column() got an unexpected keyword argument 'primary_key'TypeError: Column() 得到了一个意外的关键字参数“primary_key”
【发布时间】:2019-10-13 09:30:41
【问题描述】:
class Contacts(db.Model):
    """
    sno, name, email, phone_num, msg, date
    """
    sno = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), nullable=False)
    email = db.Column(db.String(20), nullable=False)
    phone_num = db.Column(db.String(12), nullable=False)
    msg = db.Column(db.String(120), nullable=False)
    date = db.Column(db.String(12), nullable=True)

Traceback(最近一次调用最后一次): 文件“C:/Users/rithi/Flask_Blog/main.py”,第 11 行,在 类联系人(db.Model): 文件“C:/Users/rithi/Flask_Blog/main.py”,第 15 行,在联系人中 sno = db.Column(db.Integer, primary_key=True) TypeError: Column() 得到了一个意外的关键字参数“primary_key”

【问题讨论】:

  • 去掉sno = db.Column(db.Integer, primary_key=True)再运行,查看结果?
  • % (self, self.persist_selectable.description) sqlalchemy.exc.ArgumentError: Mapper mapped class Contacts->contacts could notassemble any primary key columns for mapped table'contacts'显示此错误
  • print(type(db.Column)) 放在您的类定义上方并告诉我们它打印出来的内容。
  • @SuperShoot Traceback(最近一次调用最后): 文件“C:/Users/rithi/Flask_Blog/main.py”,第 14 行,在 类联系人中( db.Model):
  • 你可能用小写写了column关键字。用db.column替换db.Column

标签: python flask-sqlalchemy primary-key


【解决方案1】:

我刚才遇到了同样的问题。我是 Python 新手,但我将尝试总结一下我是如何为那些可能犯过同样错误的人解决这个问题的。

这是我正在编写的代码,它还显示了类“SQLAlchemy”的“未解析的属性引用“列””,例如。 '类'SQLAlchemy'的未解析属性引用'Integer''。

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///new-books-collection.db'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = 
False
db = SQLAlchemy(app)


class Books(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(250), unique=True, nullable=False)
    author = db.Column(db.String(250), unique=True, nullable=False)
    rating = db.Column(db.Float, nullable=False)


db.create_all()

我的问题是我将鼠标悬停在 Column 和 Integer 上,然后单击 Add method Column() to class SQLAlchemy。整数也一样。

从那一刻起,我遇到了同样的错误,因为它在 SQLAlchemy 的 init.py 中创建了这些空方法。

为了解决这个问题,我重新安装了 flask_sqlalchemy。 pip uninstall flask_sqlalchemypip install flask_sqlalchemy并没有再次添加方法。它仍然显示未解析的属性引用,但代码以退出代码 0 运行并创建了数据库,其中包含正确的数据。

希望有帮助!

【讨论】:

    【解决方案2】:

    我刚开始学习烧瓶,我遇到了同样的问题。只需通过键入以下内容卸载 sqlalchemy:- pip uninstall flask-sqlalchemy 但在命令提示符下导航到您的目录。它被卸载。然后通过键入以下命令进入项目目录再次安装它:- pip install flask-sqlalchemy。对我来说,这个工作有效,我能够开始使用数据库。如果您遇到同样的问题,请尝试一下。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-17
      • 2012-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-08
      相关资源
      最近更新 更多