Django 시작하기

미키오·2023년 8월 30일
0
post-thumbnail

0. 들어가며..

Django : The web framework for perfectionists with deadlines.

마감기한이 있는 완벽주의자를 위한 웹 프레임워크

부트캠프의 프로젝트에서 단순히 프런트엔드 분야만 부분적으로 공부해서는 안된다는 명백한 한계를 느꼈었다. 프로젝트를 미시적으로 파악할 수 밖에 없었고 더군다나 PM으로서 백엔드 분들의 대화를 파악하기 어려웠었다는게 많이 아쉬웠다. 그렇게 피로그래밍 19기에 합류하게 되어 배우게 된 장고!

왜 장고를 배우려고 했는가

  • 시간과 비용을 절약
    - 프레임워크 특성상 이미 구현되어 있는 코드로 생산성을 높일 수 있으며, 수많은 개발자들이 검증한 코드로 버그를 최소화 할 수 있다. + 체계적인 코드관리로 유지보수 용이
  • 로그인, 회원가입, 인증, CORS와 같은 필요성이 높거나 반복적인 부분들에 대한 기능이 기본적으로 탑재
  • 풀스택 프레임워크
  • 파이썬 Python 기반

1. 장고의 특징

(1) MTV 디자인 패턴

MTV (Model - Template - View)

(1)-1. Model (models.py)

Model은 데이터베이스에 저장되는 데이터로, 장고에서는 SQL 대신 DB 작업을 가능하게 해주는 ORM (Object-Relational-Mapping)을 기본적으로 제공한다.

(1)-2. Template (html)

Template는 사용자에게 보여지며 데이터가 출력되는 부분으로 html이 이 템플릿을 담당하게 된다.

(1)-3. View (views.py)

View는 비즈니스 로직을 처리하는 중간 관리자 및 컨트롤러와 같은 역할을 한다. 데이터 가공 및 처리는 views.py에서 함수에서 진행하면 된다.

2. 장고 시작하기

(1) 가상환경 세팅하기

(1)-1. python 설치 확인

# mac
python3 -V

# windows
python -V

(1)-2. 가상환경 설치

  • 파이썬 가상 환경은 파이썬 프로젝트를 진행할 때 독립된 환경을 만들어주는 도구로, 하나의 PC 안에 서로 다른 버전의 파이썬과 장고와 같은 라이브러리를 쉽게 설치하여 사용할 수 있다.

가상환경 설치 이유
1. 패키지 격리 : 각 프로젝트마다 필요한 패키지와 버전 분리하여 관리 가능
2. 의존성 관리: Django 프로젝트는 다양한 외부 패키지를 사용하는 경우가 많다. 따라서 필요한 패키지를 명시하고 버전을 따로 지정하여 프로젝트에 필요한 환경을 구축할 수 잇다.
3. 이식성 : 다른 개발자나 서버에서 프로젝트를 실행하거나 배포 시 일관된 환경을 유지할 수 있다.
4. 개발자 편의성 : 프로젝트 개발, 관리에 용이하다.

  • 가상환경 설치
#mac
python3 -m venv .venv

-> python -m venv venv이름

#window
python -m venv .venv

-> python3 -m venv venv이름

(1)-3. 가상환경 실행하기

#mac
source venv/bin/activate

-> source 만든 venv 이름/bin/activate

#window
source venv/Scripts/activate

-> source 만든 venv 이름/Scripts/activate

(1)-4. 가상 환경에 설치목록 확인

#mac
pip3 list
#window
pip list

(1)-5. 가상 환경에 장고 설치

#mac
pip3 install django
#window
pip install django

(2) 장고 프로젝트 시작

django-admin startproject config .

-> django-admin startproject 프로젝트명 (.) .은 있어도 되고 없어도 됨
-> 여기서 .은 현재 디렉토리에 생성할 것을 의미함

  • django 로컬 환경 서버 실행하기
python manage.py runserver

-> manage.py 파일은 Django 프로젝트의 최상위 디렉토리에 위치한 스크립트 파일로, python manage.py runservermanage.py 가 존재하는 폴더에서 입력해야 한다.

  • 로컬 환경 서버 중지
    - Ctrl + c
  • 앱 성성하기
django-admin startapp demos

-> django-admin startapp 앱이름

  • 앱을 생성하고 사용하려면 settings.py에 등록해야 한다.
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'demos',
]

3. views.py

from django.http import HttpResponse

# Create your views here.
def index(request):
  return HttpResponse('안녕하세요')
# return render(request, 'demos/index.html')

return HttpResponse('html에 들어갈 내용')
return render(request, '각 앱/templates 폴더에서의 html 경로')

4. urls.py

from django.urls import path
from .views import *

app_name = 'demos'

urlpatterns = [
    path('', index, name='index'),
]

-> path("앱에 추가될 url 주소", include('앱이름.urls')),

5. Templates

각 앱에 templates 폴더 만들기(보통 templates/app이름/html파일 구조로 사용)

ex) demos/templates/demos/index.html

6. DB migrate

  • 초기 migrate로 데이터베이스를 생성할 수 있다.
python manage.py migrate
  • 이후 모델 변경 시 DB를 변경하고 싶을 때는
python manage.py makemigrations

그후 다시

python manage.py migrate

최종적으로 다시 한번

python manage.py runserver

을 통해 크롬에서 localhost:8000을 들어가면 로켓발사 모양이 나온다면 성공한 것이다!

profile
교육 전공 개발자 💻

0개의 댓글