안녕하세요. 이번 시간에는 django에서 custom command를 만드는 방법을 알아봅시다. 사실, python manage.py runserver라던지, 혹은 createsuperuser 등이 있어요. 이들은 command로 실행이 되는데요. package를 간단하게 보면서 어떻게 구현을 했는지만 빠르게 훑어볼 거에요. 그리고, 제 command를 간단하게 만들어 볼 거에요. django.auth의 management.command에 있는 changepassword.py를 보겠습니다. 이것을 보면, add_arguments와 handle이 있네요. handle의 경우에는 command가 실행되었을 때의 로직을 구현합니다. 그리고 add_arguments는 인자를 추가합니다. 이 정도만 봐도 크게 ..
전체 글 검색 결과
dbeaver에서 foreign key를 생성하는 방법을 알아보겠습니다. postgresql에 접속한 것이니 참고 부탁드립니다. 테이블 2개가 있습니다. user하고 reply입니다. user는 id와 username을 가지고 있어요. 다음에, reply는 id와 content를 가지고 있어요. 그런데 뭔가 빠진 듯한 느낌이 납니다. 댓글을 작성한 주체가 없단 말입니다. 댓글을 작성하는 주체는 user가 될 텐데요. 이 유저를 참조하는 foreign key를 만들어 보겠습니다. 먼저, 새로운 column을 추가해야 됩니다. user에서 id를 참조하기 위해, user_id라는 것을 새로 만들었습니다. Data type은 int4로 두었습니다. 여기서 중요한 정보 하나는, 유저의 id 값을 serial4로..
랜덤한 문자열을 뽑고 싶습니다. 어떻게 하면 좋을까요? python에서는 random.choices와 비슷하게 뽑고 싶다는 이야기입니다. 즉, 같은 문자가 여러 번 나와도 됩니다. 이 때 쓸 수 있는 것이 /dev/random, /dev/urandom을 이용하는 방법입니다. 그러면, 이런 이상한 문자들이 끝도 없이 생성됨을 알 수 있어요. 이들을 적절히 정제한 다음에 상위 x개만 자른다면 비슷한 기능을 구현할 수 있겠네요. 여담으로, /dev/urandom의 file type을 보면 character special이라고 되어 있네요. 문자열 중에서 특정 문자만을 삭제하는 경우 tr 명령어를 잘 쓰게 되는데요. -c 옵션을 붙이면 complement를 의미합니다. 반전의 의미입니다. 예를 들어, ^%123..
리눅스 shuf 명령에 대해서 간단하게 알아보겠습니다. shuf는 random한 permutation을 생성합니다. 예를 들어, [1, 2, 3, 4, 5]가 있으면 [2, 1, 3, 5, 4]가 나올 수도 있고, [2, 3, 1, 4, 5]가 나올 수도 있어요. 이를 이용합니다. 먼저 -i 옵션을 보겠습니다. LO-HI를 주면, LO-HI까지의 각각의 숫자를 input line으로 간주해요. 다음에 -n은 출력하는 줄 수를 지정하는데요. 1부터 46까지 숫자 중에 6개를 중복 없이 뽑아보겠습니다. 이 경우, shuf -i 1-46 -n 6을 입력하시면 됩니다. 수 1부터 46까지를 input으로 간주하고, 6개를 뽑습니다. 즉, 1 ~ 46중 6개를 뽑는 것과 같아요. 이제 -e 옵션을 볼게요. -e는..
안녕하세요. 이번 시간에는 git restore 명령어에 대해 간단하게 알아봅시다. 사실 git status 명령어를 칠 때 마다 계속 이 명령어랑 add가 안내에 뜨길래 뭐 하는 것인가 싶어서 알아보게 되었어요. 먼저 프로젝트의 구조는 위와 같습니다. 폴더 a 밑에 b.py와 1.txt가 있고, git_test 밑에 .gitignore, 1.txt, a.py, main.py, readme가 있습니다. 수정하기 전 b.py는 1만 출력하는 문장만 있습니다. main.py에는 shutil.rmtree.avoid_symlink_attacks를 출력하는 부분만 있어요. 저는 local에서 main.py와 b.py와 1.txt를 바꾸었습니다. 아직 commit은 하지 않은 상태에요. b.py는 2를 출력하라는 ..
최근댓글