0. sqlalchemy는 기존의 자바-스프링과 다른듯.

매퍼가 따로 필요없나? 싶기도 하고, mybatis와 같은 프레임웍인가 싶기도 하고

아직도 감을 못잡겠다.


1. DB와의 접속을 위에 session()을 선헌해주고 이를 가져온다.

#공간확보
session = Session() # DB 접속을 위해 세션에 연결한다. 당연히 이 Session은 create_engine을 통해 DB와 연결을 해야한다.. 이건 나중에..

query = session.query(users)  #괄호 안에 테이블, 또는 테이블.칼럼명(users.id) 이런식으로 하여 연결한다
# 여기서 query 자체는 그냥 쿼리문이다! 데이터를 가져오려면 
query.all()
query.first() # 등을 해야한다

query = session.query(users).all() # select * from users
query = session.query(users.id) # select id from users
query = session.query(users.id, users.email) # select id, email fromusers

# filter, func 등을 사용하면 where, 집계 함수 등을 사용할 수 있다.
query = session.query(user).filter(user.id = 'test') # select * from users where id = 'test'
query = session.queyr(user).filter(user.id = 'test).filter(user.email = 'gamil') # select * from user where id = 'test and email = 'gmail'
# 위 쿼리는 모양이 바로 이해가 안간다. 이럴경우 and_ 를 임포트 해서 filter에 사용하면 된다.(or_ 등도 다 임포트 해야함)
query = session.query(user).filter(and_(user.id = 'test', user.email = 'gmail')

#all()를 통해 가져온 값은 리스트이고 sqlalchemy_results 객체이다.
# 쉽게 생각하면 해당 테이블의 칼럼 값들의 튜플 형태이다.

# 결과값에서 칼럼들의 값을 동적으로 뽑고 싶은경우(또는 넣고싶은 경우)에는 getattr, setattr을 사용한다
getattr(query, id)
setattr(query, id, 'kkk')
# 이거를 왜 언급하냐면 쿼리문의 결과값은 리스트가 아니라서 query['id'] 이런식으로 못가져온다.
# query.id 이렇게 해야 가져와진다. 
# dot point는 변수를 통해서 접근이 안된다
temp = 'id'
query.temp # query.id로 인식을 못함

'파이썬 > flask' 카테고리의 다른 글

flask의 목표  (0) 2018.08.06

물론 앞으로 내 길이기도 하지만

일단은 자바 스프링을 까먹기 전에 최대한 flask와 비교하는 것을 작성해보려 함..

시간 나는 대로 튜토리얼을 따라하며 spring과 비교 후 기존에 내 서비스를 flask로 리팩토링 하는게 목표.

기간은 무한대...

'파이썬 > flask' 카테고리의 다른 글

sqlalchemy 간략 정리  (0) 2018.09.02

+ Recent posts