1-2. Django Start

2020. 10. 6. 22:47django

이번글은 django의 본격적인 코드가 아니라 시작할때 준비하는 코드에 대한 글이다. 왜? 시작이 반이기 때문에 이것만 잘알아두어도 나중에 편할것이다.

django를 할때 우리의 로컬 환경을 사용해도 되지만 가상환경을 사용하는것이 조금 더 편리하다. 가상환경은 잘못되면 환경을 바로 지우면 되기때문에 그리고 라이브러리 관리하는것도 쉽다. 따라서 지금부터는 가상환경을 이용해서 환경을 구축한다.

  1. 가상환경 만들기
python -m venv venv
  • python : 파이썬 관련 명령어 실행
  • -m : 옵션 (명령어를 실행하기 위한 옵셥)
  • venv : 가상환경을 만드는 명령어
  • venv : 가상환경 이름(똑같이 만들면 default값으로 venv가 많이 사용되기 때문에 편리함)
  1. 가상환경 적용하기
source venv(가상환경이름)/Scripts/activate
  • source : 코드 적용
  • venv/Scripts/activate : 적용할 코드 경로

그리고 가상환경에서 패키지 설치할때 미리 사용할 목록을 작성한 파일을 이용하여 설치하면 편하다.

pip install -r requirements.txt

django start(startproject)

$ django-admin startproject intro(이름) 
  • 실제로 제일 밖에 있는 이름은 필요 없고 안에 있는 폴더 이름이 중요하다. 위처럼 하면 intro/intro 이런식으로 디렉토리가 있다.
$ django-admin startproject intro(이름) .(경로)
  • 이런식으로 하면 intro/intro 이런식이 아니라 intro 딱 하나만 생성됨

서버 실행(Run Server)

$ python manage.py runserver
  • 서버 종료 ctrl + c

여기 까지하면 우리가 사용할 장고의 진짜 기본적인 서버는 구축했다.
다음글에서 본격적인 코드를 알아보기 전에 먼저 만든 프로젝트에 구조에 대해서 살펴보면

다음과 같다.

프로젝트 구조

  • __init__.py
    • 빈 파일
    • Python에게 이 디렉토리를 하나의 Python 패키지로 다루도록 지시
  • settings.py
    • 웹사이트의 모든 설정을 포함
    • 우리가 만드는 어떤 application이라도 등록이 되는 곳이며, static files의 위치, database 세부 설정 등이 작성
  • urls.py
    • 사이트의 url와 view의 연결을 지정
  • wsgi.py
    • Web Server Gateway Interface
    • 장고 어플리케이션이 웹서버와 연결 및 소통하는 것을 도움
  • asgi.py
    • new in 3.0
    • Asynchronous Server Gateway Interface
    • 장고 어플리케이션이 비동기식 웹 서버와 연결 및 소통하는 것을 도움

그리고 추가로 알아두면 좋은것인데 나중에도 하겠지만

django 설정

settings.py에 들어가서

LANGUAGE_CODE = 'ko-kr'(요거 바꾸면 언어)
TIME_ZONE = 'asia/seoul'(요거 바꾸면 시간)

app은 다음글에서도 한번 더 복습할것이다. 중요하니깐!!!

이제 장고에 기능을 넣어줄 app을 만들어주기 전에 app에 대해서 알아보면

Application (app)

  • 실제로 어떠한 역할을 해주는 친구가 app.
  • 프로젝트는 이러한 어플리케이션의 집합이고, 실제 요청을 처리하고 페이지를 보여주고 하는 것들은 이 어플리케이션의 역할.
  • 하나의 프로젝트는 여러 개의 app을 가질 수 있다.
    • app은 하나의 역할 및 기능 단위로 쪼개는 것이 일반적
    • 그러나 작은 규모의 서비스에서는 잘 나누지 않는다.
    • 반드시 이렇게 나눠야 한다 같은 기준 또한 없다.
  • 일반적으로 app 이름은 복수형으로 하는 것이 좋다.

app 생성(startapp)

  • 반드시 현재 경로에 manage.py가 있어야 함
  • 반드시 생성 후에 등록! --> 등록은 settings.py에서
python manage.py startapp pages(이름)

앱을 생성하면 다음은 구조로 되어있음

Application 구조

  • admin.py
    • 관리자용 페이지 관련 기능을 작성 하는 곳.
  • apps.py
    • 앱의 정보가 있는 곳.
    • 우리는 수정할 일이 없다.
  • models.py
    • 앱에서 사용하는 Model(Database)를 정의하는 곳.
  • tests.py
    • 테스트 코드를 작성하는 곳.
  • views.py
    • view가 정의 되는 곳.

app 등록

intro/settings.py에서 등록함

INSTALLED_APPS = [
    ########
    'pages',
    ########
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

기능단위 별로 app을 만들어서 해당하는 기능은 app이 담당한다.

앱의 등록할때의 순서에 대한 국룰이다.


INSTALLED_APPS = [
    # Local apps  내장
    'blogs.apps.BlogsConfig',

    # Third party apps  다른사람들이 만든앱
    'haystack',

    # Django apps  장고 앱
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
]

이제 다음 글에서는 실제로 우리가 구현할 실제 예시와 함께 본격적인 코드에 대해서 알아볼것이다.

'django' 카테고리의 다른 글

2. Django app  (0) 2020.10.08
5. Django AUTH  (0) 2020.10.08
3. Django CRUD  (0) 2020.10.08
1. Django?  (0) 2020.10.06
Django: Rest API  (0) 2020.10.05