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

我的错误:

sqlalchemy.exc.ArgumentError: Mapper mapped class User->users could not assemble 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) 
); 

请您参考如下方法:

删除类 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) 


评论关闭
IT源码网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!