[Django] 1. 장고 앱 작성하기

dhkim·2020년 7월 3일

Django

목록 보기
1/10

간단한 설문조사(Polls) 어플리케이션을 만드는 과정을 따라하기

  • 사람들이 설문 내용을 보고 직업 투표할수있는 개방된 사이트
  • 관리자가 설문을 추가,변경,삭제 할 수 있는 관리용 사이트

장고의 버전을 알수 있는 명령어이다

$ python -m django --version

재대로 설치가 되지 않았다면 "No module named django" 와 같은 에러가 발생한다
장고 설치하기

프로젝트 만들기

django 를 처음 접한다면, 초기설정에 주의를 기울여야한다, Django project를 구성하는 코드를 자동 생성해야 하는데, 이과정에서 데이터 베이스 설정, Django를 위한 옵션들, 어플리케이션을 위한 설정들과 같은 Django 인스턴스를 구성하는 수많은 설정들이 생성되기 때문이다
터미널에서 cd 명령으로 프로젝트를 저장할 디렉토리를 이동한 후

$ django-admin startproject mysite

를 커맨드에 입력한다 mysite는 우리가 만든 프로젝트의 이름이고 로컬에서 mysite라는 디렉토리가 생성된다
startproject 를 생성하면 다음과 같은 파일들이 만들어 진다

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
  • manage.py: 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티이다 자세한 자료는 여기
  • mysite/ : 디렉토리 내부에는 프로젝트를 위한 실제 python 패키지들이 저장된다. 이 디렉토리 내의 이름을 이용하여, (mysite.urls 와 같은 식으로) 프로젝트의 어디서나 python 패키지들을 임포트 할 수 있다
  • mysite/__init__.py : python으로 하여금 이디렉토리를 패키지처럼 다두라고 알려주는 용도의 단 순한 빈파일이다 자세한 자료는 여기
  • mysite/settiongs.py : 현재 장고 프로젝트의 환경 및 구성을 저장한다 제사한 내용은 여기
  • mysite/urls.py : 현재 장고프로젝트의 URL 선언을 저장한다 장고로 작성된 사이트의 "목차"라고 할수 있다 자세한 내용 여기
  • mysite/asgi.py : ASGI호환 웹서버가 프로젝트에 사용할 수 있는 진입점이다 자세한 내용은여기
  • mysite/wsgi.py: 현재 프로젝트를 서비스하기 위한 WSGI 웹서버의 진입점 이다 여기

개발서버

장고가 재대로 동작하는지 확인 해보자 mysite디렉토리에서 명령어를 입력해보면

$ python manage.py runserver

커맨드 라인에서 다음과 같은 출력을 볼 수 있다

Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

7월 02, 2020 - 15:50:53
Django version 3.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

시스템에 문제가 없고 :8000번 포트에서 서버를 시작, 그리고 장고의 버전이 3.0 이란 내용이다

절대 개발서버를 운영 환경에서 사용하지 말것
개발서버는 오직 개발 목적으로만 사용해야 한다

이제 서버가 동작 하기 시작했으니, 자신의 웹브라우저에서 http://127.0.0.1:8000/로 접속할 수 있다.

개발서버는 요청이 들어올때마다 자동으로 파이썬코드를 불러온다
코드의 변경사항을 반영하기 위해서 굳이 서버를 재기동 하지 않아도 된다
하지만, 아일을 추가하는등의 몇몇 동작은 개발서버가 자동으로 인식하지 못하기 떄문에 서버를 재기동해야하는 경우도 있다

0개의 댓글