티스토리 뷰
이 문서를 보고 Custom Management Command를 만들어보도록 하겠습니다.
[1] Custom Management Command란
우선 Management Command란
우리가 자주하는 기본 명령어들을 말합니다. (python manage.py로 시작하는)
python manage.py runserver
python manage.py migrate
그럼 Custom Management Command란
아래와 같은 명령어를 의미하는 거겠네요-!
ptyhon manage.py 나의 커스텀 액션
[2] 문서보기
장고의 앱들은 각각의 액션을 manage.py에 등록할 수 있습니다.
예를들어 polls앱에서는 closepoll이라는 custom command를 만들어서 돌리고 싶을 수 있겠습니다.
python manage.py closepoll <poll_ids>
이를 위해 앱에 management/commands 라는 디렉토리를 만들어주세요
장고는 이 디렉토리에 있는 모듈을 커맨드로 등록할 것 입니다.
다만 파일명이 underscore로 시작하지 않는 것들만 등록한다고 합니다.
아래 사진처럼 되어있다면 장고는 _private.py말고 closepoll.py만 management command로 등록하겠죠?!
그리고 파일 안에서는 BaseCommand 를 상속받은 Command를 만들어주면 됩니다.
참고로 console에 output이 찍히기 원한다면 self.stdout 를 쓰라고 하네요. (위 코드의 맨마지막줄)
[3] Custom Command 만들고 실행해보기
저는 question앱에 만들어볼게요
management/commands 디렉토리를 만들어주고
makequestion.py 파일을 만들어줬어요
그리고 문서 코드를 참고해서 Command를 이렇게 만들어줬습니다.
그리고 터미널에 만든 command를 실행해보면
python manage.py makequestion 테스트질문입니다
잘된다고 나오고
로컬 서버를 돌리고 관리자사이트에 들어가보면
python manage.py runserver localhost:8000
만든 질문이 DB에 잘 추가된 것을 볼 수 있습니다.
'🐍 > Django' 카테고리의 다른 글
[Django] 장고, Heroku의 기본 DB 설정 살펴보기 (0) | 2021.01.13 |
---|---|
[Heroku] Scheduler를 이용해서 반복 작업 돌리기 (0) | 2020.11.02 |
[Django] FCM 서버를 통해 앱에 푸쉬보내기 (6) | 2020.10.24 |
[Django] 튜토리얼 part 6 - 정적 파일 (0) | 2020.02.29 |
[Django] 튜토리얼 part 5 (2) - 뷰 테스트 작성하기 (0) | 2020.02.22 |
- Total
- Today
- Yesterday
- SerializerMethodField
- METAL
- ipad multitasking
- Flutter Spacer
- Flutter Text Gradient
- ribs
- 구글 Geocoding API
- github actions
- Flutter Clipboard
- DRF APIException
- drf custom error
- Dart Factory
- Flutter 로딩
- Sketch 누끼
- Watch App for iOS App vs Watch App
- cocoapod
- Django Heroku Scheduler
- Django FCM
- flutter 앱 출시
- 장고 Custom Management Command
- flutter dynamic link
- Python Type Hint
- Django Firebase Cloud Messaging
- Flutter getter setter
- flutter build mode
- flutter deep link
- 장고 URL querystring
- PencilKit
- 플러터 얼럿
- 플러터 싱글톤
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |