簡體   English   中英

sqlalchemy.exc.ArgumentError: Mapper mapped class could notassemble any primary key columns for mapped table'users'

[英]sqlalchemy.exc.ArgumentError: Mapper mapped class could not assemble any primary key columns for mapped table 'users'

我正在嘗試連接我的數據庫。 但我做不到。

我的錯誤:

sqlalchemy.exc.ArgumentError: Mapper mapped class User->users could notassemble any primary key columns for mapped table'users'

幫幫我:這是我的代碼:

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)

這是我的表結構:

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)
);

刪除 class 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM