我正在尝试连接我的数据库。但我做不到。
我的错误:
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)