ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Python shell - help 기능
    Python 2022. 1. 16. 21:06

    코드를 짜면서 mysql에서 원하는 데이터를 불러오려면 어떻게 입력해야 하는지 고민을 많이 하게 됩니다.

     

    때로는 컴퓨터에게

    "내가 product의 id를 알고 있는데 너한테 어떻게 알려주면 tag_name을 알려줄래?"

    라고 얘기하면서 바로바로 의사소통을 하고 싶어질 때가 정말 많습니다.

     

    view 작성 예시

     

    AttributeError의 예시

     

    프로젝트하면서 너무 어려웠을 때 PR 하면서 제목에 [HELP]라고 남겼던 적도 있었습니다..

    이번에 아래의 view 작성할 때 제가 원하는 데이터에 어떻게 접근해야 하는지 너무 막막해서 

    python의 shell에서 열심히 쳐보다가 help라고 써봤습니다.

     

    스트레스 받으실 때는 python에게 도움을 요청해봐요

     

    그러자 python이 제게 응답했습니다!!

    Python : "help(객체) 이런 식으로 알려줘"

    바로 help(Product) 라고 입력해봤습니다!

     

    help(Product) 입력 예시

    모델링을 옆에 켜두고 하시면 모델링은 지도고 python shell이 내비게이션처럼 이런 식으로 길을 알려줘서 많은 도움이 됩니다!

     

    프로덕트와 연결된 메뉴의 데이터를 가져오고 싶다면

    product = Product.objects.get(pk=15)

    help(product.menu)  이런 식으로 입력하시면 어떤 데이터를 가져올 수 있는지 그리고 어떻게 입력해야 하는지도 알 수 있습니다.

     

     

    참고로 중간 테이블을 통하여 다대다 관계의 테이블의 데이터를 추출하고자 하신다면 이렇게 접근하시면 됩니다.

    제 경우에는 Product 테이블 - 중간 테이블인 ProductTag - Tag 테이블의 관계 (다대다)

    Product 테이터를 통해서 Tag의 데이터를 가져오고자 한다면

    tags = product.tags.all()    또는 tags = product.tags.filter(name__endswith='미') 등

    이런 식으로 접근하시면 QuerySet으로 나오는걸 확인하실 수 있을 것입니다.

     

    product = Product.objects.get(pk=15)
    tags = product.tags.all()
    
    for tag in tags:
    	tag.name

     

    다대다 관계 데이터 추출 예시

     

    이번에 이 shell의 help 기능은 정말 제게 유레카 같은 일이었습니다.

    뭔가 벽에 막혀서 어디로 어떻게 가야할지 모르겠는 상황이었는데 python shell에게서 위안을 얻은 것 같습니다.

     

    코드 치시다 보면 답답하시고 막막하실텐데 그럴 때 shell과 대화를 시도해보시는 건 어떨까 싶습니다..! ㅎㅎ 모두들 화이팅!!

     

     

    댓글

Designed by Tistory.