오랫만입니다. 이번 시간에는 파이썬의 sys.path에 대해 간단하게 알아보겠습니다. 먼저, testmodule 프로젝트를 하나 만들었습니다. 프로젝트의 구조는 main.py가 있고, t1 패키지 아래에 cron.py가 있는 구조입니다. cron.py에 있는 test_cron은 test_cron_1을 출력합니다. t1.cron으로부터 test_cron을 import 하면 의도대로 잘 동작할까요? 같은 프로젝트 폴더 내에 있으니, 잘 찾아갈 겁니다. test_cron_1이 잘 출력됩니다. 이제, 제가 testmodule2라는 프로젝트를 새로 하나 만들었습니다. t2라는 패키지가 있고요. 그 아래에 cron.py가 있습니다. 이 파일 안에는 test_cron 함수가 있습니다. testmodule1에 있는 m..
분류 전체보기 검색 결과
django에는 django_session 테이블이 있습니다. 말 그대로 세션 데이터를 저장하는 테이블인데요. 어떤 데이터가 저장되는지 알아보겠습니다. 저는 postgres 14.0, django는 4.0대 버전을 쓰고 있습니다. 먼저, 엣지로 django admin 페이지를 열어서, 어드민 계정으로 로그인 하였습니다. 다음에, 파이어 폭스로도 똑같이 어드민 계정으로 로그인 하였습니다. 이제, django의 session 테이블에 어떤 데이터가 저장되어 있는지 보도록 하겠습니다. session_key하고 session_data, 그리고 expire_date가 저장되어 있습니다. 세션 키와 세션 데이터는 어떻게 생성되는 것일까요? 그리고, 세션 키는 어디에 쓰이는 것일까요? 먼저 세션 키는 브라우저의 쿠키..
파이썬에서 dict는 꽤 많이 사용합니다. 키에 대응되는 값을 찾고 싶습니다. 어떻게 하면 좋을까요? 이번 시간에는 dictionary를 index로 접근하는 방법과 get 메서드로 접근하는 것의 차이점을 알아보겠습니다. 그리고 키가 없을 때 get 함수를 이용해서 어떻게 디폴트 값을 얻는지도 알아봅니다. 먼저 딕셔너리 d에는 키 값이 1이고 값이 1인 쌍과 키 값이 2이고 값이 2인 쌍 2개가 저장되어 있습니다. d[1]은 키 값이 1인 것의 value 값을 뽑아내는 것입니다. 1이 나오네요. 이건 당연합니다. 그러면, 이 경우는 어떨까요? 3이라는 키는 없으니까 딕셔너리에서 3을 꺼내와 봅시다. 해당 코드는 위와 같이 작성할 수 있습니다. 그랬더니 KeyError 에러가 납니다. 이는 3이라는 키가 ..
프로젝트를 분석하거나, 디버깅을 할 때 grep을 많이 이용하게 됩니다. 특정 키워드로 찾아 들어가면서 분석을 많이 하는 편인데요. 예를 들자면, a라는 패턴을 찾기 위해서 프로젝트 전체를 재귀적으로 탐색한 다음에 해당 코드를 보는 편입니다. 그런데, 저는 해당 패턴이 걸리는 줄 주변의 이전 라인, 다음 라인도 같이 출력을 하고 싶었습니다. 그러면 1개의 줄만 볼 때 보다 맥락을 조금 더 잘 파악할 수 있었을 것이기 때문입니다. 이런 옵션이 없었을 리가 없었습니다. 저만 몰랐을 뿐. grep 명령어에는 이런 처리를 위해, 몇 가지 옵션이 있는데요. -A, -B, -C 옵션에 대해 알아보겠습니다. 먼저 실험에 사용할 파일 1.txt에는 위와 같은 내용이 저장되어 있습니다. a부터 g까지 순서대로 적혀 있고..
django 버전은 4.0.3, 파이썬은 3.9 버전에서 실습하였습니다. 그리고, 디비는 postgresql을 쓰고 있습니다. migration을 진행하다 보면, 당황할 법한 에러 메세지를 보게 되는 경우가 있는데요. postgresql과 연결한 상태에서, migrate를 하다가 오류가 생겨서 당황하였습니다. 사실, 잘 될 거 같았기 때문입니다. 예외를 자세히 읽어 보니, relispartition이 언급되었는데요. 옛날 버전은, pg_class 테이블에 해당 필드가 없어서 생긴 문제였습니다. settings.py에서 디비 연결 정보를 정의하였습니다. 그리고 마이그레이션이 잘 될 줄 알았는데 이게 왠걸? relispartition이 떨어졌습니다. c가 무엇인지 알아보기 위해서, 코드 내부를 타고 들어가 ..
최근댓글