• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

강의 7분 1초 , current_user 문의 드립니다.

22.04.05 22:09 작성 조회수 165

0

데이브 선생님안녕하세요.

늘 말씀드리지만, 덕분에, 플래스크를 많이 이해 하게 되었습니다.

 

질문을 하고 잘 싶은데, 질문을 하는것도 어렵네요. 

제가 생각하는 것을 모두 설명하면 질문이 더 난해해 질것 같아서

 

요약해서 질문 드려볼게요~

 

current_user는 

 

User.get() 함수로   : user_id로 찾아서 리턴한 user 객체가 current_user가 될수도있고

 

User.find() 함수로 : user_email로 찾아서 리턴한 user  개체가

current_user가 될수도 있고

 

User.create() 함수로 : user 객체를 생성하거, 찾아서 리턴한

user 객체가 current_user 가 되기도 하는거 같은데

 

제가 이해한것이 맞는지 궁금하여서 문의 드립니다.

 

갑자기 너무 멘붕이 왔습니다. ㅠㅠ

 

 

 

답변 1

답변을 작성해보세요.

0

안녕하세요. 항상 열심히 하시는 모습 응원드립니다. 

복잡한 부분이긴 해요. 솔직히 말씀드리면, 저도 한~~참 전에 작성한 코드라서( ..;) , 한참을 다시 보고 있었는데요. 완벽하게 맞는지 살짝 저도 고민이 되는데요.

최대한 설명을 드리면, 기본적으로 current_user 라는 것은 flask_login 이라는 라이브러리에서 제공해주는 객체입니다. 해당 웹페이지에 접속하면, 자동으로 세션이 만들어지고, 해당 세션에 해당하는 사용자 객체 정보를 current_user 만 지칭하면 언제든 가지고 올 수 있게끔 한 것인데요.

이 사용자 세션이 만들어질려면 flask_login 라이브러리의 login_user 메서드를 호출해야 해요. 이 때 사용자 객체 정보를 넣어줘야 하는데요. 저희는 사용자 정보를 따로 DB 로 추가 정보(예를 들어 email)와 함께 별도로 관리하고 있잖아요. 그래서 해당 정보를 가져오거나, 신규 사용자면, 해당 사용자를 추가해주는 작업을 편리하게 하기 위해 User 라는 클래스에  static method 를 get, find 등을 만든 것이고요. 이를 통해 사용자 정보를 찾아오고, 이 객체를 login_user 에 넣어주면 current_user 로 해당 사용자 정보를 사용할 수 있다 라고 보시면 좋을 것 같아요. 그러다보니까 User.create 를 하든, User.find 를 하든, current_user 와 동일하게 보실 수 있으실 것 같습니다.

감사합니다.