-
Python shell - help 기능Python 2022. 1. 16. 21:06
코드를 짜면서 mysql에서 원하는 데이터를 불러오려면 어떻게 입력해야 하는지 고민을 많이 하게 됩니다.
때로는 컴퓨터에게
"내가 product의 id를 알고 있는데 너한테 어떻게 알려주면 tag_name을 알려줄래?"
라고 얘기하면서 바로바로 의사소통을 하고 싶어질 때가 정말 많습니다.
프로젝트하면서 너무 어려웠을 때 PR 하면서 제목에 [HELP]라고 남겼던 적도 있었습니다..
이번에 아래의 view 작성할 때 제가 원하는 데이터에 어떻게 접근해야 하는지 너무 막막해서
python의 shell에서 열심히 쳐보다가 help라고 써봤습니다.
그러자 python이 제게 응답했습니다!!
Python : "help(객체) 이런 식으로 알려줘"
바로 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과 대화를 시도해보시는 건 어떨까 싶습니다..! ㅎㅎ 모두들 화이팅!!
'Python' 카테고리의 다른 글
python 내장함수 getattr (0) 2022.05.19 날짜 입력 및 D-Day 계산 (0) 2022.04.12 list comprehension 중복 제거 - Object of type set is not JSON serializable (0) 2022.01.16 UUID vs CharField의 max_length (0) 2022.01.02 Python dictionary get 메소드 vs Django objects get 메소드 (0) 2022.01.02