티스토리 뷰

프로젝트 및 앱 생성

장고에서 쓰이는 프로젝트와 앱은 일반적으로 쓰이는 의미와 다르다.

프로젝트 는 전체 프로그램을 의미하며, 이를 몇 개 기능으로 나누었을 때의 서브 프로그램을 어플리케이션(앱) 을 의미한다. 즉 하나의 프로그램(프로젝트)는 여러 개의 앱으로 구성된다.

먼저 장고 프로젝트를 만드려면 장고를 설치해야 한다.

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
링크
«   2024/12   »
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
글 보관함