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 프로젝트 생성 및 실행
가상환경 생성 및 실행
- 디렉토리 하나 생성 후, 해당 위치에서 cmd(명령 프롬프트)나 git bash와 같은 터미널을 열고 아래 명령어 실행
- 파이썬 모듈 중
venv
라는 모듈을 사용하여 가상환경 생성 -> 설정한 이름으로 디렉토리가 생성됨 - 가상환경(Virtual Environment): 각각의 프로젝트에 맞는 독립된 환경을 구성한 것, 프로젝트마다 사용되는 라이브러리의 목록이나 버전이 다를 경우 프로젝트 별로 가상환경을 구축하여 개발해야 함
python -m venv [가상환경 이름] source [가상환경 이름]/scripts/activate // 가상환경 종료 deactivate
Django 설치
pip install Django // 버전 지정 시 pip install Django==3.2.12 // 삭제 -- 버전 지정하지 않아도 됨 pip uninstall Django
프로젝트 생성
프로젝트 생성 시, 프로젝트 이름으로 환경설정 폴더가 생성됨- 프로젝트(Project): 최상위의 웹 개발 디렉토리(루트 폴더)
- 앱(App): 프로젝트에 포함되는 여러 개의 프로그램, 특정한 기능을 수행하는 프로그램 단위(회원가입, 게시판, 설문조사 등)
django-admin startproject [프로젝트 이름] . // .까지 포함! python manage.py startapp [앱 이름] // manage.py가 있는 위치에서 실행해야 함
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', ] ...
프로젝트 실행
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