【问题标题】:Mapper Mapper|User|users could not assemble any primary key columns for mapped table 'users'映射器映射器|用户|用户无法为映射表“用户”组装任何主键列
【发布时间】:2019-04-02 11:19:43
【问题描述】:
from sqlalchemy import *
from sqlalchemy import create_engine, ForeignKey
from sqlalchemy import Column, Date, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref

engine = create_engine('sqlite:///database.db', echo=True)
Base = declarative_base()

########################################################################
class User(Base):
    """"""
    __tablename__ = "users"

id = Column(Integer, primary_key=True)
username = Column(String)
password = Column(String)

#----------------------------------------------------------------------
def __init__(self, username, password):
    """"""
    self.username = username
    self.password = password

# create tables
Base.metadata.create_all(engine)

这应该创建一个文件名为 database.db 的数据库结构,但弹出错误,我该如何解决? 任何帮助将不胜感激。

【问题讨论】:

  • 如果你的缩进和你在这里展示的一样,那么你有一个简单的错字。列和 __init__ 函数不是您班级主体的一部分。
  • 谢谢伙计。成功了

标签: python flask sqlalchemy flask-sqlalchemy


【解决方案1】:

这是一个缩进问题。 解决了。 解决方案:

from sqlalchemy import *
from sqlalchemy import create_engine, ForeignKey
from sqlalchemy import Column, Date, Integer, String
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import relationship, backref

engine = create_engine('sqlite:///tutorial.db', echo=True)
Base = declarative_base()

########################################################################
class User(Base):
    """"""
    __tablename__ = "users"

    id = Column(Integer, primary_key=True)
    username = Column(String)
    password = Column(String)

#----------------------------------------------------------------------
def __init__(self, username, password):
    """"""
    self.username = username
    self.password = password

# create tables
Base.metadata.create_all(engine)

【讨论】:

    【解决方案2】:

    在我的情况下,我收到了这个错误,因为我是这样写的

    Column('id', Integer)
    Column('username', String)
    

    对比

    id = Column('id', Integer)
    username = Column('username', String)
    

    【讨论】:

      猜你喜欢
      • 2021-09-26
      • 2017-10-02
      • 2017-10-26
      • 2021-08-15
      • 1970-01-01
      • 2019-10-29
      • 2012-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多