삼십 오 : 데이터베이스 SQLAlchemy의 많은 관계 구축 외부

 

준비

가져 오기 create_engine의 SQLAlchemy의 열에서, 정수, 문자열, 플로트, 텍스트하는 외래 키 
sqlalchemy.ext.declarative에서 가져 오기는 declarative_base
sqlalchemy.orm 가져 오기 sessionmaker의에서

# 데이터베이스 정보
호스트 = '127.0.0.1'
포트 = '3306'
데이터베이스 = 'db_to_sqlalchemy'
= 사용자 이름 '루트'
암호 = '123456'

데이터베이스에 위젯 데이터베이스 # + 유형 연결, pymysql 사용 여기
DB_URI = f'mysql + pymysql : // { 사용자 이름} {암호} @ {호스트} {포트} / { 데이터베이스} '

엔진 = create_engine (DB_URI) # 생성 엔진
기본 = declarative_base (엔진) # 사용은 기본 클래스 생성 declarative_base
세션 = sessionmaker (엔진) ()


: 클래스 사용자 (기본)
사용자 __tablename__ ='
ID = 열 (정수, primary_key와를 = 사실,자동 증가 = 참)
사용자 이름 = 열 (문자열 (50), 널 (NULL) = 플로트)

데프 __repr __ (자기) :
리턴 f'User (사용자 이름 : {self.username}) '


클래스 조 (자료) :
__tablename__ ='기사 '
ID = 열 (정수, primary_key와 = 사실, 자동 증가는 참) =
제목 = 열, 널 (NULL) = 거짓) (문자열 (50)
내용 = 열 (텍스트, 널 (NULL) = 플로트)
UID = 열 (정수, 외래 키 ( 'user.id'))

데프 __repr __ (자기 ) :
리턴 f'Article (제목 : {self.title}, 내용 : {self.content}) '


Base.metadata.create_all ()

사용자 = 사용자 (사용자 이름 ='AA ')가
session.add (사용자)
여 session.commit ()

글 = 제 (제목 = '제목 2', 내용 = '123', UID = 1)
세션.추가 (기사)
여 session.commit ()

 

사용자 정보를 얻을 수있는 기사를 통해

 

외부 쿼리 방법을 사용하지 않고 내장

사용 외부 내장 : 관계를

 

사용자가 해당 문서의 정보를 가지고 UID에

 

모델에 필요한 것보다 외부 빌드 관계와 관계를 추가 더 웨이, 너무 많은 문제는, SQLAlchemy의 역방향 참조 방법을 제공 : 역 참조를

기사에 의해 조회 되돌릴 수 같은

 

추천

출처www.cnblogs.com/zhongyehai/p/11809310.html