Development/Django

[Django 프레임워크 제대로 배우기] 1. Django 시작하기

조코링 2023. 1. 24. 11:42

프레임워크(Framework)란?

  • 프로그래밍에서 특정 운영 체제를 위한 응용 프로그램 표준 구조를 구현하는 클래스와 라이브러리 모임, 쉽게 말하자면 규칙이 적용된 틀
  • 장점
    • 규칙과 가이드에 따라 개발하면 품질 좋은 웹 사이트를 쉽게 개발할 수 있음
    • 유지보수 등을 위한 인력의 충원이나 연속성이 보장되고, 안성정, 통합성, 유지보수, 효율성 등 장점을 가짐
  • 단점
    • 러닝커브가 높고(학습 시간이 오래 걸리고), 규칙과 가이드에서 벗어나는 것을 쉽게 허용하지 않음
    • 기존의 전통적인 방식으로 개발된 웹사이트와 통합하기 어려움

Django란?

  • Python 기반 오픈 소스 웹 프레임워크
  • 초보자가 쉽고 편리하게 데이터베이스와 연동된 웹 사이트를 개발할 수 있도록 하는 것이 목표
  • MTV(Model-Template-View) 패턴을 따름
    • Model: 데이터 모델(표본), =테이블 정의
    • Template: 사용자가 보게 되는 화면
    • View: 데이터 조작, 데이터를 활용해 템플릿 렌더링
  • ORM(Object Relational Mapping): SQL 쿼리문이 아닌 프로그래밍 언어로 DB를 조작할 수 있도록 하는 것

필수 프로그램

  • Python 3.7 +
  • Text Editor: Visual Studio Code, Notepad++ 등
  • Database: Oracle, MySQL, SQLite 등 -> SQLite는 Django 설치 시 함께 설치됨

Django 프로젝트 생성 및 실행

  1. 가상환경 생성 및 실행

    • 디렉토리 하나 생성 후, 해당 위치에서 cmd(명령 프롬프트)나 git bash와 같은 터미널을 열고 아래 명령어 실행
    • 파이썬 모듈 중 venv라는 모듈을 사용하여 가상환경 생성 -> 설정한 이름으로 디렉토리가 생성됨
    • 가상환경(Virtual Environment): 각각의 프로젝트에 맞는 독립된 환경을 구성한 것, 프로젝트마다 사용되는 라이브러리의 목록이나 버전이 다를 경우 프로젝트 별로 가상환경을 구축하여 개발해야 함
    python -m venv [가상환경 이름]
    source [가상환경 이름]/scripts/activate
    
    // 가상환경 종료 
    deactivate
  2. Django 설치

    pip install Django 
    
    // 버전 지정 시 
    pip install Django==3.2.12 
    
    // 삭제 -- 버전 지정하지 않아도 됨 
    pip uninstall Django
  3. 프로젝트 생성
    프로젝트 생성 시, 프로젝트 이름으로 환경설정 폴더가 생성됨

    • 프로젝트(Project): 최상위의 웹 개발 디렉토리(루트 폴더)
    • 앱(App): 프로젝트에 포함되는 여러 개의 프로그램, 특정한 기능을 수행하는 프로그램 단위(회원가입, 게시판, 설문조사 등)
    django-admin startproject [프로젝트 이름] .        // .까지 포함!
    python manage.py startapp [앱 이름]                // manage.py가 있는 위치에서 실행해야 함
  4. settings.py에 앱 등록

    // settings.py 
    
    ... 
    
    # Application definition 
    INSTALLED_APPS = [ 
        '[앱 이름]', 
        'django.contrib.admin', 
        'django.contrib.auth', 
        'django.contrib.contenttypes', 
        'django.contrib.sessions', 
        'django.contrib.messages', 
        'django.contrib.staticfiles', 
    ] 
    
    ...
  5. 프로젝트 실행

    python manage.py runserver 
    
    // 포트번호 변경 -- 기본값 8000 
    python manage.py runserver [포트번호] 
    
    // 종료는 ctrl + c

    위 명령어 실행 후 브라우저에서 http://localhost:8000/(포트번호 변경 시 8000 대신 변경한 포트번호 입력)에 접속하면 다음 같은 화면이 보임
    ※ 서버 구동 후 파일에 변화가 발생하면 자동으로 재구동함
    ※ 에러가 발생할 경우 터미널과 브라우저에 에러를 동시에 표시함

초기 폴더 구조

[루트 디렉토리]
├ [가상환경 이름]
├ [프로젝트 이름]
│ ├ __pycache__/
│ ├ __init__.py
│ ├ asgi.py
│ ├ settings.py        // 프로젝트 설정
│ ├ urls.py            // 프로젝트 루트 url
│ └ wsgi.py
├ [앱 이름]
│ ├ migrations/
│ ├ __init__.py
│ ├ admin.py
│ ├ apps.py
│ ├ models.py           // 테이블 생성 등 DB 관련 작업 수행
│ ├ tests.py
│ └ views.py
├ db.sqlite3             // DB
└ manage.py              // 프로젝트 실행 명령이 포함된 파일

※ 강의 링크: https://inf.run/zh3f