Django : The web framework for perfectionists with deadlines.
마감기한이 있는 완벽주의자를 위한 웹 프레임워크
부트캠프의 프로젝트에서 단순히 프런트엔드 분야만 부분적으로 공부해서는 안된다는 명백한 한계를 느꼈었다. 프로젝트를 미시적으로 파악할 수 밖에 없었고 더군다나 PM으로서 백엔드 분들의 대화를 파악하기 어려웠었다는게 많이 아쉬웠다. 그렇게 피로그래밍 19기에 합류하게 되어 배우게 된 장고!
MTV (Model - Template - View)
Model은 데이터베이스에 저장되는 데이터로, 장고에서는 SQL 대신 DB 작업을 가능하게 해주는 ORM (Object-Relational-Mapping)을 기본적으로 제공한다.
Template는 사용자에게 보여지며 데이터가 출력되는 부분으로 html이 이 템플릿을 담당하게 된다.
View는 비즈니스 로직을 처리하는 중간 관리자 및 컨트롤러와 같은 역할을 한다. 데이터 가공 및 처리는 views.py에서 함수에서 진행하면 된다.
# mac
python3 -V
# windows
python -V
가상환경 설치 이유
1. 패키지 격리 : 각 프로젝트마다 필요한 패키지와 버전 분리하여 관리 가능
2. 의존성 관리: Django 프로젝트는 다양한 외부 패키지를 사용하는 경우가 많다. 따라서 필요한 패키지를 명시하고 버전을 따로 지정하여 프로젝트에 필요한 환경을 구축할 수 잇다.
3. 이식성 : 다른 개발자나 서버에서 프로젝트를 실행하거나 배포 시 일관된 환경을 유지할 수 있다.
4. 개발자 편의성 : 프로젝트 개발, 관리에 용이하다.
#mac
python3 -m venv .venv
-> python -m venv venv이름
#window
python -m venv .venv
-> python3 -m venv venv이름
#mac
source venv/bin/activate
-> source 만든 venv 이름/bin/activate
#window
source venv/Scripts/activate
-> source 만든 venv 이름/Scripts/activate
#mac
pip3 list
#window
pip list
#mac
pip3 install django
#window
pip install django
django-admin startproject config .
-> django-admin startproject 프로젝트명 (.) .은 있어도 되고 없어도 됨
-> 여기서 .은 현재 디렉토리에 생성할 것을 의미함
python manage.py runserver
-> manage.py
파일은 Django 프로젝트의 최상위 디렉토리에 위치한 스크립트 파일로, python manage.py runserver
는 manage.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',
]
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 경로')
from django.urls import path
from .views import *
app_name = 'demos'
urlpatterns = [
path('', index, name='index'),
]
-> path("앱에 추가될 url 주소", include('앱이름.urls')),
각 앱에 templates 폴더 만들기(보통 templates/app이름/html파일 구조로 사용)
ex) demos/templates/demos/index.html
python manage.py migrate
python manage.py makemigrations
그후 다시
python manage.py migrate
최종적으로 다시 한번
python manage.py runserver
을 통해 크롬에서 localhost:8000을 들어가면 로켓발사 모양이 나온다면 성공한 것이다!