수색…


소개

Flask-SQLAlchemy는 널리 사용되는 Python 객체 관계형 매퍼 (ORM) SQLAlchemy에 대한 지원을 Flask 응용 프로그램에 추가하는 Flask 확장입니다. 일반적인 작업에 몇 가지 기본 구현을 제공하여 Flask로 SQLAlchemy를 단순화하는 것을 목표로합니다.

설치 및 초기 예제

설치

pip install Flask-SQLAlchemy

단순 모델

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80))
    email = db.Column(db.String(120), unique=True)

위의 코드 예제는 단순한 Flask-SQLAlchemy 모델을 보여줍니다. 모델 선언에 선택적 tablename을 추가 할 수 있지만 데이터베이스 작성 중에 Flask-SQLAlchemy가 자동으로 클래스 이름을 테이블 이름으로 사용하므로 종종 필요하지 않습니다.

우리 클래스는 구성된 선언적 기본 클래스 인 Baseclass 모델을 상속받습니다. 따라서 SQLAlchemy를 사용할 때 명시 적으로베이스를 정의 할 필요가 없습니다.

참고

관계 : 1 대 다수

    class User(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(80))
        email = db.Column(db.String(120), unique=True)
        posts = db.relationship('Post', backref='user')


    class Post(db.Model):
        id = db.Column(db.Integer, primary_key=True)
        content = db.Column(db.Text)
        user_id = db.Column(db.Integer, db.ForeignKey('user.id')

이 예에서는 User 클래스와 Post 클래스의 두 클래스가 있습니다. User 클래스는 상위 클래스가 될 것이고 Post는 우리의 게시물이 될 것입니다. 게시물 만이 한 사용자에게 속할 수 있지만 한 사용자는 여러 게시물을 가질 수 있습니다. 이 예제에서 부모를 참조하는 하위에 외래 키를 배치하기 위해 Post 클래스에 외래 키를 배치하여 User 클래스를 참조합니다. 그런 다음 SQLAlchemy 객체 db 를 통해 액세스하는 부모에 relationship() 을 사용합니다. 그러면 우리는 Post 클래스가 나타내는 항목 모음을 참조 할 수 있습니다.

backref 를 사용하여 양방향 관계를 만들면 자식이 부모를 참조 할 수 있습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow