Flask 一对一的关系问题

Flask 一对一的关系问题,flask,sqlalchemy,flask-sqlalchemy,Flask,Sqlalchemy,Flask Sqlalchemy,我正在努力建立一对一的关系。我有一个脚本,当我想清除数据库时,它会运行db.drop_all()。但这样做时,我会出现级联错误。我在模型关系中使用了许多使用级联和单亲参数的组合,但没有任何效果。如果您能帮助我建立一对一的关系,我将不胜感激,这样我就可以使用db.drop\u all()而不会出错。下面是我的最新迭代 from sqlalchemy.sql import func from project import db, bcrypt class User(db.Model):

我正在努力建立一对一的关系。我有一个脚本,当我想清除数据库时,它会运行
db.drop_all()
。但这样做时,我会出现级联错误。我在模型关系中使用了许多使用级联和单亲参数的组合,但没有任何效果。如果您能帮助我建立一对一的关系,我将不胜感激,这样我就可以使用
db.drop\u all()
而不会出错。下面是我的最新迭代

from sqlalchemy.sql import func
from project import db, bcrypt


class User(db.Model):

    __tablename__ = 'user'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    email = db.Column(db.String(150), nullable=False)
    password = db.Column(db.String(250), nullable=False)
    active = db.Column(db.Boolean(), default=True, nullable=False)
    created_date = db.Column(db.DateTime, default=func.now(), nullable=False)
    profile = db.relationship("Profile", cascade="all, delete, delete-orphan")


    def __init__(self, email, password):
        self.email = email
        self.password = bcrypt.generate_password_hash(password).decode('utf-8')



class Profile(db.Model):

    __tablename__ = 'profile'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    first_name = db.Column(db.String(150), nullable=True)
    last_name = db.Column(db.String(250), nullable=True)
    github_url = db.Column(db.String(250), nullable=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
    user = db.relationship("User")

请注意,这两个模型之间的关系仅在profile model中定义。

谢谢,我稍后回家时会尝试此操作。然后将继续。我收到错误-在关系“profile.user”上创建backref“profile”时出错:映射器“mapped class user->user”上存在该名称的属性我找到了它
from sqlalchemy.sql import func
from project import db, bcrypt


class User(db.Model):

    __tablename__ = 'user'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    email = db.Column(db.String(150), nullable=False)
    ...

    def __init__(self, email, password):
        self.email = email
        self.password = bcrypt.generate_password_hash(password).decode('utf-8')



class Profile(db.Model):

    __tablename__ = 'profile'

    id = db.Column(db.Integer, primary_key=True, autoincrement=True)
    first_name = db.Column(db.String(150), nullable=True)
    user_id = db.Column(db.Integer, db.ForeignKey("user.id"), nullable=False)
    ...

    user = db.relationship(
        'User', cascade='all', backref=db.backref('profile', cascade='all'))