Django2.1 내가 보는 강의 tutorial 2

Frameworks/Django|2019.03.12 17:57

Django2.1 내가 보는 강의 tutorial 2

Django 튜토리얼에 나오는 설문조사 사이트를 만들어 본다.


개발 환경

OS : Windows 10

IDE : Pycharm


Django 웹 사이트 만드는 순서

1. 파이참으로 프로젝트 생성.

2. Django 설치.

3. 프로젝트 만들기.

4. 데이터베이스 초기화.

5. 관리자 계정 만들기.

6. 앱 만들기.

7. 앱 추가하기.

8. 앱의 모델 만들기.

9. 앱의 뷰 만들기.

10. 앱의 템플릿 만들기.

11. URL 연결하기.


1. 파이참으로 프로젝트 생성.

파이참 실행 > file > new project

mysite 라는 이름으로 생성해준다.



그럼 다음과 같이 mysite라는 디렉토리가 생기고 그 밑에 venv라는 가상환경이 생성된다.



파이참 터미널에서 보면 (venv)라는 문구가 앞에 붙어 있는데 터미널이 가상환경에서 실행되고 있음을 알 수 있다.



2. Django 설치.

터미널에서 다음 명령어를 입력하여 Django를 설치한다. 그러면 시스템전체가 아닌 해당 가상환경에만 Django가 설치 된다. 
독립적인 환경에서 운영하기 위해서 Django를 가상환경에 설치한다. 

pip install django


Django가 설치 되었는지 확인

python -m django --version

장고의 버전이 출력되면 설치가 완료된 것이다.


3. 프로젝트 만들기.

이제 프로젝트를 생성한다. 프로젝트를 생성시키면 Django 프로젝트의 설정 등을 담고 있는 파일들 몇 가지가 생성된다. 

보통 다른 예제들에는 django-admin startproject projectname 방식으로 생성하는데

이렇게 하면 하위 폴더로 proejctname이 생성되고 그 밑에 파일들이 생성되기 때문에 더 복잡해지기만 한다. 

뒤에 .을 붙여 해당 폴더에 하위 폴더를 생성하지 않고 바로 만들어 두면 복잡함을 줄 일 수 있다.


$ django-admin startproject config .


manage.py - Django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티 입니다. 

서버를 실행하는 runserver, 앱을 생성하는 startapp, 데이터베이스 마이그레이션을 하는 migrate 등의 명령어를 실행할 수 있게 해주는 파일이다.


config/ - 단순히 프로젝트를 담는 공간이다.

 config라는 이름은 Django와 아무 상관이 없으니, 원하는 이름으로 변경해도 된다.


config/__init__.py - 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 단순한 빈 파일이다.


config/settings.py - 현재 Django 프로젝트의 환경설정을 저장하고 있다. 


config/urls.py - 현재 Django 프로젝트의 URL 선언을 저장하고 있다.

 Django로 작성된 사이트의 "목차" 라고 할 수 있다.


config/wsgi.py - 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점으로 배포시에 사용된다.




4. 데이터베이스 초기화.

다음과 같이 처음에 데이터베이스가 비어 있다.

migrate 명령으로 데이터베이스를 초기화 할 수 있다.



$ python manage.py migrate


명령을 실행하고 나면 Django에서 기본적으로 쓰는 테이블들이 생성된다.



5. 관리자 계정 만들기.

생성된 테이블 중 auth_user라는 테이블은 사용자(회원)를 저장하고 있는데 아직 등록을 안했기 때문에 사용자가 없다. 


관리자를 하나 생성해 본다.


$ python manage.py createsuperuser
Username (leave blank to use 'user'): admin
Email address:
Password:
Password (again):
This password is too common.
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.

다음과 같이 createsuperuser명령으로 지정된 이름과, 이메일, 패스워드로 사용자가 생성되었다. 

is_superuser에 1값이 들어가 있는데 관리자로 생성되었다. 



* 해당 데이터베이스 화면은 mysql과 연동한 것으로 현재 실습 과정으로는 볼 수 없다. 
지금은 그냥 이렇게 진행되는 구나 하는 정도로만 봐두자.

일단 글이 길어져 여기서 끊고 서버만 구동시켜봐야겠다.

runserver 명령으로 실행시켜 볼 수 있지만 이는 테스트할 때 이용하고 실제 배포할 때는 쓰지 않는다.

runserver는 Django를 설치한 후 부터 바로 사용할 수 있고, 아래와 같은 화면을 볼 수 있다.

명령을 입력하고 다음과 같은 메시지가 나오면 127.0.0.1:8000으로 접속해 본다.

$ python manage.py runserver 
Performing system checks...

System check identified no issues (0 silenced).
March 13, 2019 - 17:59:05
Django version 2.1.7, using settings 'config.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.


config/settings.py

파일을 열어 밑으로 쭉 내려보면 다음과 같이 LANGUAGE_CODE와 TIME_ZONE이 설정되어 있는 것을 볼 수 있다. 

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'


이를 다음과 같이 바꾼다.


LANGUAGE_CODE = 'ko-kr'

TIME_ZONE = 'Asia/Seoul'



이렇게 변경하면 언어는 한글로, 시간대는 서울로 바뀐다.



댓글()