2017. 1. 1. 23:08ㆍDev/Django
알찬 예제로 개념잡기 좋은 곳
https://tutorial.djangogirls.org/ko/django_start_project/
virtualenv 환경 만들기(선택사항)
가상환경 설치
$ python3 -m venv [venv명]
가상환경 실행
$ source [venv명]/bin/activate
참고 - 가상환경 종료
([venv명])~$ deactivate
가상환경 상태에서 django 설치
([venv명])~$ pip install django
장고 프로젝트 시작
$ django-admin startproject [프로젝트명] #프로젝트명폴더 아래 프로젝트설치 $ django-admin startproject [프로젝트명] . #현재 위치에 프로젝트설치
으로 프로젝트를 만들었다면 명령을 실행시킨 경로에 프로젝트명으로된 폴더 하나가 만들어진다.
그 아래에 다시 프로젝트명으로된 폴더가 또 하나 만들어지는데 여기에 프로젝트와 관련된 많은 설정 파일이 있는 것을 확인 할 수 있다.
구조는 아래와 같다.
프로젝트명 폴더
- 프로젝트명 폴더
- manage.py
manage.py으로 여러가지 명령을 입력하여 장고를 사용할 수 있다. 참고
db.sqlite3는 장고 프로젝트 생성시 기본으로 제공해주는 파일기반의 DBMS. 같은 위치의 프로젝트명 폴더 안에 들어있는 settings.py를 열어보면 DATABASES 변수에 sqlite3 를 설정하고 있는 부분을 볼 수 있다.
같은 위치의 프로젝트명 폴더안에는 프로젝트 설정파일들이 존재한다.
프로젝트안에 앱 만들기
$ python manage.py startapp [앱이름]
으로 애플리케이션을 만들수 있다. 경로에 앱이름으로 생성된 폴더를 확인할 수 있다.
프로젝트명 폴더
- 프로젝트명 폴더
- 앱이름 폴더
- manage.py
url 요청시 프로젝트명 폴더 안에있는 urls.py에 맵핑된 구조를 따라서 응답한다.
앱폴더 안에도 urls.py가 있는데 프로젝트/urls.py에서 include()를 이용해 앱/urls.py가 처리하도록 설정할 수 있다.
마이그레이션
앱폴더 안에는 models.py 파일이 있는데 DB모델과 관련있는 파일이다. 이곳에 테이블과 데이터 타입등을 지정해 주고 마이그레이션을 할 수 있다.
class [model명](models.Model): : :
models.py에 모델링을 했다면 다음의 명령어로 마이그레이션을 진행하자.
$ python manage.py makemigrations $ python manage.py migrate
makemigrations는 models.py에 정의한 내용을 파이썬이 사용할 수 있도록 만들어두는 단계라 할 수 있다.
앱폴더/migrations/ 위치로 가보면 makemigrations 명령으로 생성된 파일을 볼 수 있는데 열어보면 어떤 코드로 바뀌었는지 알 수 있다.
migrate는 실제로 DBMS와 마이그레이션 되는 명령이다. 명령 실행 후 디비에 원격접속하면 추가나 변경된 사항을 확인할 수 있다.
관리자 설정
당고 관리자 계정 생성 명령
$ python manage.py createsuperuser
이 명령으로 http://localhost:8000/admin 접속으로 관리자 화면에 접속할 수 있는 계정을 만들 수 있다.
관리자 화면에서는 마이그레이션된 데이터도 볼 수 있도록 설정할 수 있다.
앱폴더/admin.py에 다음의 내용을 추가해 준다. model class명에는 models.py에 정의해둔 class명을 적는다.
from .models import [model class명] admin.site.register([model class명])
http://localhost:8000/admin 다시 접속해보면 마이그레이션된 테이블과 데이터들을 확인할 수 있다.
'Dev > Django' 카테고리의 다른 글
Django 디버깅 툴 (0) | 2017.01.10 |
---|---|
기존 디비를 장고로 Migration 하기 (0) | 2017.01.09 |
django mysql date_format 에러 (0) | 2017.01.02 |
AWS EC2 Django 서버 계속 실행시키기 (0) | 2017.01.01 |
EC2 우분투 Python Django 설치 (0) | 2016.12.27 |