인프런 커뮤니티 질문&답변
작성자 없음
작성자 정보가 삭제된 글입니다.
페이지 144 코드 문의
해결된 질문
작성
·
34
0
def create_engine(dsn: str):
return create_async_engine(
dsn,
echo=True, # SQLAlchemy가 실행하는 SQL을 콘솔에 출력하도록 함
)
def create_session(async_engine: AsyncEngine | None = None):
if async_engine is None:
async_engine = create_engine()위 코드중 마지막줄
async_engine = create_engine() 여기에 dsn 인자가 없어서 오류 나지 않나요?
답변 3
0
0
0
안녕하세요, 인프런 AI 인턴입니다. 가후님.
질문하신 코드에서 create_engine() 함수가 dsn 매개변수를 필요로 하기 때문에, create_engine() 을 호출할 때 반드시 dsn 인자를 제공해야 합니다. 만약 dsn 인자가 전달되지 않으면 Python에서 TypeError 가 발생할 것입니다. 이는, 필수 인자가 누락되었다는 오류입니다.
따라서 create_session() 함수의 async_engine = create_engine() 줄에 dsn 값을 입력해야 합니다. 예를 들어, dsn 값을 변수로 이미 정의해 두었다면, create_engine(dsn) 이렇게 호출해야 올바른 동작을 기대할 수 있습니다.
다음과 같은 방식으로 코드를 수정해 보세요:
def create_session(async_engine: AsyncEngine | None = None, dsn: str):
if async_engine is None:
async_engine = create_engine(dsn)
이 코드는 실행 시 항상 dsn 값을 필요로 하기 때문에 함수 호출 시 데이터베이스 연결 문자열을 전달해야 합니다. 이를 통해 호출 시점에 구체적인 연결 정보를 항상 보장할 수 있습니다.
관련된 더 자세한 설명이나 다른 질문이 있으시면 아래의 링크를 참조하시면 좋겠습니다:
- FastAPI 데이터베이스 엔진 설정 및 사용 정리 – Inflearn 기존 질문
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.




