Python SQL炼金术一对一(烧瓶)
我想在一对一关系表中为用户创建一个配置文件。如何为用户和用户配置文件执行此操作 我还想展示一下,让他们在一起。。如何为CRUD操作连接配置文件和用户表 非常感谢你Python SQL炼金术一对一(烧瓶),python,sqlalchemy,Python,Sqlalchemy,我想在一对一关系表中为用户创建一个配置文件。如何为用户和用户配置文件执行此操作 我还想展示一下,让他们在一起。。如何为CRUD操作连接配置文件和用户表 非常感谢你 class User(UserMixin, db.Model): __tablename__ = 'users' id = db.Column('user_id', db.Integer, primary_key = True) email = db.Column(db.String(128), unique
class User(UserMixin, db.Model):
__tablename__ = 'users'
id = db.Column('user_id', db.Integer, primary_key = True)
email = db.Column(db.String(128), unique = True)
password = db.Column(db.String(200))
is_admin = db.Column(db.Boolean, default=False)
is_active = db.Column(db.Boolean, default = False)
token = db.Column(db.String(100), unique = True)
profile = relationship("Profile", lazy = "joined")
def __init__(self, email, password, token, is_admin = False, is_active = False):
self.email = email
self.password = self.GenerateHash(password)
self.is_active = is_active
self.is_admin = is_admin
self.token = token
类配置文件您必须更改用户表中的此行:
profile = relationship("Profile", lazy = "joined")
借
在档案类中:
class Profile(db.Model):
__tablename__ = 'profiles'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('user.id'))
user = relationship("User", back_populates="profiles")
您可以查看文档
编辑:由于没有关于类Profile的规范,我将其超类更改为db.Model谢谢您的回答,back_在关系中填充的含义是什么?它用于让sqlalchemy知道两个表之间的连接,您可以使用
backref
来避免它。这是一个很好的解释。
class Profile(db.Model):
__tablename__ = 'profiles'
id = Column(Integer, primary_key=True)
user_id = Column(Integer, ForeignKey('user.id'))
user = relationship("User", back_populates="profiles")