This is an old revision of the document!
Django
django basics
- MVT; Model-View-Template
- 프로젝트 뼈대 만들기 → 모델 코딩하기 → URLconf 코딩하기 → 뷰 코딩하기 → 템플릿 코딩하기
- settings.py
- 데이터베이스 설정: 디폴트로 SQLite3 데이터베이스 엔진을 사용하는 것으로 지정
- 애플리케이션 등록: 개발하는 앱, 즉 프로젝트에 포함되는 애플리케이션들은 모두 설정 파일에 등록
- 템플릿 항목 설정: TEMPLATES 항목으로 지정
- 정적 파일 항목 설정: STATIC_URL 등 관련 항목을 지정
- 타임존 지정: 최초에는 세계표준시(UTC)로 설정되어 있는데, 한국 시간으로 변경
- models.py; ORM(Object Relational Mapping) 기법 사용, makemigration/migrate 명령
- URLconf; urls.py 프로젝트 전체 URL을 정의하는 프로젝트 URL과 앱마다 정의하는 앱 URL
- views.py; Function-based view, Class-based view
- templates; 프로젝트 베이스(루트) 디렉토리, 프로젝트 디렉토리, 프로젝트 템플릿 디렉토리, 앱 템플릿 디렉토리
- admin site
- runserver; 상용화를 고려할 때 runserver 대신 apache / nginx 선택
Virtual Environments
- 파이썬 라이브러리들 간 충돌을 방지
virtualenv/ venv
- 작업할 디렉토리 생성
- 가상 환경 생성
- 생성된 가상 환경으로 진입 → 프롬프트 변경 확인
- 작업
- 가상 환경에서 빠져나옴
- 가상 환경에서 패키지 복제
(myvenv)$ pip3 freeze > requirenments.txt # myvenv 가상 환경에 설치된 패키지 목록을 requirenments.txt로 저장 (new_venv)$ pip3 install -r requirenments.txt #
- 가상 환경에 장고 패키지 설치
$ source /home/alex/VENV/djprj/bin/activate # djprj 가상 환경으로 진입 (djprj)$ pip3 install Django # 최신 버전의 장고 설치 (djprj)$ pip3 list # 설치된 패키지 리스트 확인 # 파이썬 기본 라이브러리들의 위치 /usr/local/lib/python3.7/ # 파이썬 외부 라이브러리들의 위치 /home/alex/VENV/djprj/lib/python3.7/site-packages/
- 파이썬용 패키지 검색 사이트 https://pypi.python.org/
- 장고용 패키지 검색 사이트 https://www.djangopackages.com/
- 타임존 관리 패키지 pytz
(djprj)$ pip3 install pytz
- 패키지 설치 툴 업그레이드
(djprj)$ pip install -U pip setuptools wheel
- InsecurePlatformWarning 해결
(djprj)$ pip3 install pyopenssl ndg-httpsclient pyasn1
develop with django
- design
- UI
- table
- logic
- url
작업 순서 | 관련 명령/파일 | 필요한 작업 내용 |
---|---|---|
뼈대 만들기 | startproject | 프로젝트 생성 |
settings.py | 프로젝트 설정 황목 변경 | |
migrate | User/Group 테이블 생성 | |
createsuperuser | 프로젝트 관리자인 슈퍼유저를 만듦 | |
startapp | 앱 생성 | |
settings.py | 앱 등록 | |
모델 코딩하기 | models.py | 모델(테이블) 정의 |
admin.py | admin 사이트에 모델 등록 | |
makemigrations | 모델의 변경사항 추출 | |
migrate | 변경사항을 데이터베이스에 반영 | |
URLconf 코딩하기 | urls.py | URL 정의 |
뷰 코딩하기 | views.py | 뷰 로직 작성 |
템플릿 코딩하기 | templates 디렉토리 | 템플릿 파일 작성 |
그 외 코딩하기 | - | (없음) |
- coding
- project 생성
- 프로젝트 설정 파일 변경
- 기본 테이블 생성
- 슈퍼유저 생성
- 애플리케이션 생성
- 애플리케이션 등록
- models
- 테이블 정의
- admin 사이트에 테이블 반영
- 데이터베이스 변경 사항 반영
- 테이블 확인
- URLconf
- View
- Templates
- bootstrap
- 상속; base.html, home.html, footer.html, …
- 인증