Django란?
- 파이썬으로 작성된 무료 오픈 소스 웹 프레임워크
- 웹 개발을 보다 쉽게 구현할 수 있으며, 보안, 확장성, 빠른 개발을 위한 다양한 기능 제공
- Model-View-Template (MVT) 아키텍처 기반으로 이루어짐
데이터베이스 구조(Model), 사용자 인터페이스(Template), 애플리케이션 로직(View)
→ 일반적인 MVC 패턴과 용어의 차이가 있으나 원리는 동일함
Django 설치 및 서버 구동
python 인터프리터에서 django 설치
pip install django
입력
원하는 경로에 새로운 프로젝트 생성
django-admin startproject mysite
입력
개발 서버 구동
cd mysite
>python manage.py makemigrations
>python manage.py migrate
>python manage.py runserver
이후 http://127.0.0.1:8000/에 접속하면 다음과 같은 화면이 뜬다.
투표 Application 개발
Django는 Application 단위로 웹페이지를 개발하도록 되어 있으며, Application은 프로젝트 폴더에 넣었다 뺐다 할 수 있음
새로운 application 생성
python manage.py startapp polls
입력
polls 폴더 안에 생성된 views.py 코드 작성
1
2
3
4
5from django.shortcuts import render
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, World. You're at the polls index.")index()
: http 리퀘스트를 받아서 response 메시지 출력하는 함수
polls 폴더 안에 urls.py 생성
1
2
3
4
5
6
7from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]mysite 폴더 안에 있는 urls.py 코드 작성
- 프로젝트에 application을 넣고 빼는 작업은 url 연결로 가능함
1
2
3
4
5
6
7from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]http://127.0.0.1:8000/polls에 접속하면 다음과 같은 화면 출력
Reference
- django Documentation : https://docs.djangoproject.com/en/3.2/intro/tutorial01/
- 참고 블로그 : https://lucky516.tistory.com/52, https://lucky516.tistory.com/53