본문 바로가기

분류 전체보기65

[Django] 장고에 작업 스케줄러 적용하기 - 작업 스케줄러로 장고 프로젝트 제어하기 pre-print 프로젝트를 진행하면서 DJango 프로젝트에 일정 시간마다 이벤트를 줘야 하는 경우가 생겨 검색과 시도를 여러번 한 끝에 작업 스케줄러를 장고 프로젝트에 연결하는 데 성공하였는데 나 같이 장고에 주기적으로 이벤트를 실행시켜줘야하는 사람이 있을까 싶어 장고와 작업스케줄러의 자세한 설정 매커니즘을 작성한다. 1) 장고 프로젝트내 사용자 정의 명령 만들기 작업 스케줄러를 통해 일정 주기마다 실행시키고 싶은 파일을 만드는 단계이다. => 이와 같이 앱 폴더 내에 management 폴더를 만들고 그 하위 폴더로 commads폴더를 만들어 준다. 필자의 경우 preprint라는 앱 하위에 management/commads 디렉토리를 생성해 주었다. 이후 위 사진과 같이 management, co.. 2023. 8. 6.
Django 프로젝트 작업 스케줄러로 모델 데이터 삭제하기 2023 pre-print 개발일지 8/6 스케줄러 작성 전 장고 프로젝트 세팅 => 사용자 정의 명령을 만들기 위해 프로젝트 앱 내에 다음과 같이 management/commands라는 디렉터리를 생성해 준다. commands폴더에 작업 스케줄러로 일정 시간마다 실행시키고 싶은 파일을 생성해 준다. 매일 일정시간마다 모델의 데이터를 삭제해야 하므로 "reset_orders"라는 이름으로 작성했다. 모델의 데이터를 삭제하는 코드작성 => 일정 시간마다 Order와 OrderFile 모델의 데이터를 삭제하는 코드를 아래와 같이 작성해 준다. from django.core.management.base import BaseCommand from django.core.files.storage import def.. 2023. 8. 6.
Django pdf파일 페이지 계산하기(PyPDF2) & 마이페이지, 주문 상세 페이지 구현 2023 pre-print 개발일지 8/5 PyPDF2 라이브러리를 사용하여 pdf파일 page계산하기 한글파일과 워드파일의 경우는 페이지 수 계산하는 방법이 나와있지 않거나 까다로운 반면 pdf파일의 페이지 수는 PyPDF2 라이브러리와 장고 내부 모듈을 통해 쉽게 계산할 수 있다. 1) PyPDF2와 장고 모듈 import import PyPDF2 from django.core.files.uploadedfile import InMemoryUploadedFile => 이와 같이 pdf파일 페이지 계산에 필요한 라이브러리를 추가해 준다. 2) pdf페이지 계산 if isinstance(file, InMemoryUploadedFile): pdf = PyPDF2.PdfReader(file) pages = l.. 2023. 8. 5.
Django 장고 .gitignore 설정 & 민감한 정보 분리 & 깃허브 재개설 2023 pre-print 개발일지 8/2~8/3 깃허브 레포 삭제 이전까지 기능을 추가할 때마다 깃허브에 장고 프로젝트 전체를 push 하며 관리했다.. 가상환경뿐만 아니라 내부의 올라가지 말아야 할 쓸데없는 파일들과 보안에 중요한 settings.py의 secret키 정보와 데이터베이스까지 올라갔다. . gitignore를 통해서 올라가지 말아야 할 파일을 제외해야 된다는 것을 이제야 알았다.. 깔끔하게 이전에 작업하던 레포를 삭제하고 새로만들어 다시 커밋을 진행했다. 민감한 정보 분리 문제를 해결하려 파일을 다음과 같이 local_settings.py파일을 만들어 settings.py에서 시크릿키와 데이터베이스 정보를 분리 했다. from pathlib import Path BASE_DIR = Pa.. 2023. 8. 3.