sqlalchemy.exc.ArgumentError:映射器映射类无法为映射表“用户”组装任何主键列

Nya*_*gal 6 python postgresql sqlalchemy flask-sqlalchemy

我正在尝试连接我的数据库。但我不能。

我的错误:

sqlalchemy.exc.ArgumentError:映射器映射类用户->用户无法为映射表“用户”组装任何主键列

帮帮我吧伙计们!这是我的代码:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy.dialects.postgresql.base import UUID
from sqlalchemy import text

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres:test@localhost/test' 
db = SQLAlchemy(app)
db.UUID = UUID
#User table
class User(db.Model):
    __tablename__ = 'users'
    usr_id = db.Column(UUID(as_uuid=True), primary_key=True, server_default=text("uuid_generate_v4()")),
    usr_name = db.Column(db.String, nullable=False),
    usr_email = db.Column(db.String, nullable=False),
    usr_pass =  db.Column(db.String, nullable=False)

    def __repr__(self):
        return "<User(name='%s', email='%s')>" % (self.usr_name, self.usr_email)

usr = User()

usr.usr_name = "Nyamkhuu"
usr.usr_email = "info@info.com"
usr.usr_pass = "123"

db.session.add(usr)
db.sesion.commit()

usrs = User.query.all()

for urr in usrs:
    print(urr)
Run Code Online (Sandbox Code Playgroud)

这是我的表结构:

create table users (
    usr_id    uuid DEFAULT uuid_generate_v4(),
    usr_name  varchar NOT NULL,
    usr_email varchar NOT NULL,
    usr_pass  varchar NOT NULL,
    PRIMARY KEY(usr_id)
);
Run Code Online (Sandbox Code Playgroud)

dam*_*dam 9

删除,类中的每个逗号User,如下所示:

class User(db.Model):
    __tablename__ = 'users'
    usr_id = db.Column(UUID(as_uuid=True), primary_key=True, server_default=text("uuid_generate_v4()"))
    usr_name = db.Column(db.String, nullable=False)
    usr_email = db.Column(db.String, nullable=False)
    usr_pass =  db.Column(db.String, nullable=False)

    def __repr__(self):
        return "<User(name='%s', email='%s')>" % (self.usr_name, self.usr_email)
Run Code Online (Sandbox Code Playgroud)