티스토리 뷰
프로젝트 및 앱 생성
장고에서 쓰이는 프로젝트와 앱은 일반적으로 쓰이는 의미와 다르다.
프로젝트 는 전체 프로그램을 의미하며, 이를 몇 개 기능으로 나누었을 때의 서브 프로그램을 어플리케이션(앱) 을 의미한다. 즉 하나의 프로그램(프로젝트)는 여러 개의 앱으로 구성된다.
먼저 장고 프로젝트를 만드려면 장고를 설치해야 한다.
python -V # 파이썬 설치여부 확인
pip install Django # pip는 파이썬 3.x버전을 설치하면 같이 설치됨
나는 맥북에 miniconda를 설치해놓은 상태였는데, pip3 는 인식하는데 pip 는 zsh command not found 에러가 났다. .zshrc 파일을 열어서 .bash_profile에 있는 miniconda PATH를 복붙해주니 해결되었다.
장고를 설치했으면 원하는 디렉토리 위치에 가서 프로젝트 생성 명령을 한다.
# 프로젝트 생성
django-admin startproject mysite
mysite라는 디렉토리가 생성되는데 특이한 점은 mysite내에 mysite 디렉토리가 하나 더 생긴다는 것이다.
mysite
├── mysite
| ├── __init__.py
| ├── settings.py
| ├── urls.py
| └── wsgi.py
└── manage.py
최상위 mysite 디렉토리는 큰 의미를 갖지 않으므로 헷갈리지 않게 바꿔주는 것이 좋다. 대문자로 바꾼다거나 아예 다른 이름으로.
이제 프로젝트를 생성했으면 앱을 생성한다.
# 앱 생성
python manage.py startapp myapp
그러면 이런 식으로 된다.
MYSITE
├── mysite
├── myapp
| ├── __init__.py
| ├── admin.py
| ├── apps.py
| ├── migrations.py
| | └── __init__.py
| ├── models.py
| ├── tests.py
| └── views.py
├── manage.py
└── db.sqlite3
myapp이라는 앱을 생성했을 때 기본적인 파일이 저렇게 생성되지만, 보통 추가하게 되는 것들이 있다.
- myapp/urls.py
- myapp/static/
- myapp/templates/myapp/
- mysite/templates/
- mysite/static/
일단 myapp/urls.py
이랑 myapp/templates/myapp/
은 바로 쓰니까 생성해둬도 좋을 듯 하다.
앱을 생성했으면 바로 해야 하는 일이 있다.
settings.py
INSTALLED_APP = ['myapp'] # 추가
ALLOWED_HOST = []
LANGUAGE_CODE = 'ko-kr' # 변경
TIME_ZONE = 'Asia/Seoul' # 변경
USE_TZ = False # 변경
USE_TZ
은 한국 시간대만 사용할 것이면 False로, 아니면 True로 설정한다.
ALLOWED_HOST
는 개발 모드(Debug=True)일때는 빈 리스트여도 장고가 localhost로 간주한다. localhost외에 다른 서버 IP를 등록하려면 여기에다 하면 되고, 만약 운영 모드(Debug=False) 일 때에는 반드시 서버 IP나 도메인을 지정해야 한다.
그 다음은 데이터의 변경사항을 반영하는 명령인 migrate를 친다. 아직 db를 생성하지 않았더라도 사용자 및 그룹 테이블은 장고가 기본으로 만들어주므로, 이를 반영하기 위해서 migrate를 하는 것이다.
python manage.py migrate
그러면 db.sqlite3
가 생성된다. 여기까지가 기본 프로젝트와 앱을 생성한 것이며, 테스트용 웹서버를 켜서 확인해본다. 기본적으로 로컬호스트 8000번에서 실행된다.
python manage.py runserver
그 다음 admin 관리자를 만든다.
python manage.py createsuperuser
이름, 이메일, 비밀번호를 설정한 다음 localhost:8000/admin으로 들어가면 관리자 페이지에 해당 계정으로 로그인할 수 있다.
이제 기본적인 프로젝트랑 앱을 생성하였다.
기본 가상환경 실행하기
프로젝트를 할 때는 독립된 파이썬 환경을 생성하는 도구인 가상환경을 사용하게 된다. 예를 들어 하나의 파이썬에는 django 1.9와 1.10 버전이 공존할 수 없다. 각기 다른 버전을 사용하려면 가상환경을 만들어서 버전 충돌을 방지해야 한다.
가상환경 중에는 virtualenv가 많이 쓰이지만 PyPI(Python Package Index)에서 설치해야 하고, venv는 파이썬 3.4부터 기본 탑재되어 별도 설치가 필요없다.
venv를 사용하려면
$ python -m venv venv # 가장 마지막 venv는 임의 설정 이름. ENV 등으로 바꿔도 상관 없다.
위 명령을 실행한 뒤 ls를 보면 venv라는 폴더가 생성됐음을 알 수 있다. 리눅스/맥이냐 윈도우냐에 따라 조금 다르지만 activate파일이 그 폴더 안에 들어있다. (윈도우는 venv/Scripts/activate
리눅스, 맥은 venv/bin/activate
)
$ source venv/bin/activate # 가상환경 실행
$ deactivate # 가상환경 비활성화
$ rm -rf venv # 가상환경 삭제
'Python' 카테고리의 다른 글
[Django 입문] 폼클래스 만들기 (1) | 2019.11.12 |
---|---|
[Django 입문] Model 코딩 (0) | 2019.10.31 |
[Django 입문] 장고의 어플리케이션 개발 방식 (0) | 2019.10.30 |
파이썬 내장 모듈 - 1 (0) | 2019.09.24 |
[파이썬] 힙큐(heapq) (0) | 2019.09.23 |
- Total
- Today
- Yesterday
- 개발 공부
- Session
- 인스턴스
- Data Structure
- jQuery
- react
- 알고리즘
- SQL
- linkedlist
- CSS
- GIT
- til
- youtube data api
- getter
- oracle
- 리덕스
- 자바
- useEffect
- Java
- c언어
- rxjs
- package.json
- Redux
- 깃
- 제네릭스
- 포인터 변수
- JavaScript
- Conflict
- Prefix Sums
- this
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |