[Django] Django 설치 및 환경 설정

Joney의 SW 공부 블로그·2023년 3월 5일
0

Django

목록 보기
1/1

python 가상환경 설정

  • python 및 패키지의 버전 관리를 위해 가상환경을 생성해서 작업하는 것이 좋음

  • 설치

    $ python -m venv <가상환경 이름>
    • 가상환경 이름
  • 가상환경 실행

    $ source <가상환경 이름>/Scripts/activate
    • 가상환경 이름
  • 가상환경 종료

    $ deactivate

Django 설치

  • Django 패키지 설치
$ pip install django==3.2.13
  • 패키지 목록 생성
    • 가상환경에 설치되어 있는 패키지 목록을 txt파일로 생성
    • 향후 해당 목록을 사용해서 패키지를 일괄 설치 가능
  $ pip freeze > requirements.txt
  • 패키지 목록 설치
$ pip install -r requirements.txt

Django Project

프로젝트 생성

  • Project 생성 시 Python이나 Django에서 사용 중인 키워드 및 - 사용이 불가

  • 방법 1 (선호되는 방식)

    • 명령어를 실행한 경로에 프로젝트 생성됨
    $ django-admin startproject <project name> .
    *파일구조*
    <project name>/
    				settings.py
    				urls.py
    					...
    manage.py
  • 방법 2 (과거의 방식)

    • 명령어를 실행한 경로에 폴더가 생성되고 그 폴더 안에 프로젝트가 생성됨
    $ django-admin startproject <project name>
    *파일구조*
    <project name>/
    				<project name>/
    								settings.py
    								urls.py
    									...
    				manage.py

서버 실행

$ python manage.py runserver

프로젝트 구조

  • __init__.py
    • Python에게 이 디렉토리를 하나의 Python 패키지(링크)로 다루도록 지시
    • 별도로 추가 코드를 작성하지 않음
  • settings.py
    • Django의 모든 설정을 포함
  • urls.py
    • 사이트의 url과 적절한 views의 연결을 지정
  • wsgi.py
    • Web Server Gateway Interface
    • Django 어플리케이션이 웹서버와 연결 및 소통 담당
    • 추후 배포 시에 사용하며 개발에서는 작업하지 않음
  • asgi.py
    • Asynchronous Server Gateway Interface
    • Django 어플리케이션이 비동기식 웹 서버와 연결 및 소통
    • 추후 배포 시에 사용하며 개발에서는 작업하지 않음
  • manage.py
    • Django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인 유틸리티
    • 코드는 수정하지 않지만, Django와 관련된 명령어가 작성되어 있으므로 숙지해야 함

Django Application

애플리케이션 생성

$ python manage.py startapp <app name>

애플리케이션 구조

  • admin.py
    • 관리자용 페이지 관련 코드를 작성하는 곳
  • apps.py
    • 애플리케이션의 정보가 작성되어 있음
    • 별도로 추가 코드를 작성하지 않음
  • models.py
    • 애플리케이션에서 사용하는 Model을 정의하는 곳
    • MTV 패턴의 M에 해당
  • tests.py
    • 프로젝트 테스트 코드를 작성하는 곳
  • views.py
    • view 함수들이 정의 되는 곳
    • MTV 패턴의 V에 해당

애플리케이션 등록

  • settings.pyINSTALLED_APPS 에 애플리케이션 이름을 작성
# settings.py

INSTALLED_APPS = [
    '<app name>',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]
profile
SW 지식 노트 블로그

0개의 댓글