WebApp2, SQLAlchemy, Apache, PostgrSQL 등을 사용하여 웹 응용 프로그램을 만들고 있습니다. config
파일에 데이터베이스 자격 증명을 저장하고 scoped_session을 사용하여 세션 개체를 만듭니다. 지금 내 모든보기 파일이 설정 파일을 가져 와서 사용하는 세션 객체를 다음과 같이 :SQLAlchemy scoped_session :보기를 가져 오는 최상의 방법
some_view.py
import config
def view():
query = config.session.query(bla bla)
이러한 접근 방식은 최종 아니다 나는 최선의 방법을 사용하고 싶습니다.
은 내가 여기에 달성하고자하는 것은보기 함수의 실행 후 세션 개체가 닫혀 있도록 붙박이 방법과 관련된 장식 또는 webapp2를 사용하여 세션 객체를 얻기의 몇 가지 방법입니다. 나는 많은 방법을 시도했지만 그것을 성취 할 수 없었다. 작동중인 스 니펫을 높이 평가할 것입니다.
더 나은 접근 방법을 가진 사람이면 누구나 제안하십시오.
감사
편집 -----
@javex : 제안 주셔서 감사합니다. 호출시에 scoped_session 객체를 반환하고 작업이 완료되면 세션을 닫는 데코레이터 클래스를 찾고 있습니다. 참고로 여기에 샘플 코드가 있지만 작동하지 않습니다.
class GetDBSession(object):
"""Decorator class to create DB session object"""
def __init__(self):
self.session = scoped_session(sessionmaker(bind=database_engine))
def __exit__(self): #Dont know if it works
self.session.close()
def __call__(self): #Dont know if it works
return self.session
그리고 나는이처럼 사용하려면 :
@GetDBSession()
def view_func():
#work with session object here