Flask를 배우고 flask-sqlalchemy 패키지를 사용하기 시작했습니다. role (id, name) 및 users (id, username, password, role_id) 및 role_id가 roles.id의 외래 키인 스키마가 있습니다. 하나의 역할로 일대 다 관계를 여러 사용자에게 할당 할 수 있지만 모든 사용자는 단일 역할을 갖게됩니다.
다음 코드에서
class Role(db.Model):
# ..
users = db.relationship('User', backref='role')
class User(db.Model):
# ..
role_id = db.Column(db.Integer, db.ForeignKey('roles.id')
여기에서 role_id의 사용법을 설정했는데 왜 db.relationship이 필요한가요? 관계 옵션의 용도 및 용도 :
db.relationship은 경우에 따라 매우 유용하며 긴 쿼리를 피하는 데 도움이 될 수 있습니다.
예를 들면
없이 db.relationship
:
role = ... # some role
Session.query(User).filter_by(role_id=role.role_id).all()
다음과 비교 db.relationship
:
role = ... # some role
role.users
관계 옵션과 관련하여 가장 유용한 것은 아마도 backref
. User 모델에서 역 참조 속성을 생성합니다. 예를 들면 :
이렇게하는 대신 :
Session.query(Role).filter_by(role_id=user.role_id).first()
다음과 같이 할 수 있습니다.
user.role
나머지 옵션에 관해서는 공식 문서 를 읽는 것이 좋습니다 . 여기에 답변에 넣을 수있는 것보다 더 유익하기 때문입니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다