Dive into Django
Django란,
웹 애플리케이션을 효율적이고 빠르게 개발하는데 사용되는 파이썬 오픈소스 웹 프레임워크 이다.
실제로 웹을 개발할때 공통적으로 개발해야하는 인증, DB, 쿠키 등등을 app이라는 Django의 특별한 기능으로 재사용이 가능하게 만들어 쉽고 빠르게 개발할 수 있게 해준다.
Django는
ORM : DB와 상호작용할때 SQL을 사용하지 않고 Python 객체를 사용하여 DB를 다룰 수 있게 해준다.
URL 라우팅 : 웹 애플리케이션에 각 URL 패턴에 매치되는 각 view함수나 class를 매핑해준다.
인증과 보안 : 사용자 인증, 보안관리 등을 내장된 기능으로 편리하게 사용할 수 있다.
애플리케이션 재사용 : app을 모듈화하여 재사용해 같은 기능들을 편리하게 사용할 수 있다.
관리자 인터페이스 : 기본 admin 기능을 제공하여 쉽게 데이터베이스 내용을 수정하고 관리가 가능하다.
한국어로된 공식문서! 등등....
이런 여러가지 기능들을 제공하여 더 쉽게 개발할 수 있는 웹 프레임워크이다.
실제로 인스타그램, 번개장터, 라프텔, 토스(사내 서비스 개발용) 등에서 사용된다.
Django가 작동하는법
# jueun/settings.py
ROOT_URLCONF = 'jueun.urls'
장고가 제일 먼저 어떤 파일로 가야할지 나타내는 부분이다.
장고가 실행되면 settings.py에 있는 ROOT_URLCONF에 있는 파일로 이동한다.
한번 이동해보면,
# jueun/urls.py
urlpatterns = [
path('admin/', admin.site.urls),
path('profile/', include('profile.urls'))
]
urls.py에서 url패턴을 비교하여 url에 qwer.com/profile이 있으면 include()에 연결해준다.
여기서 profile은 app이며 app을 추가할때에는 settings.py에 추가해야한다.
#settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'profile'
]
이렇게 어떤 app을 추가했는데 INSTALLED_APPS에 추가해야한다.
# profile/urls.py
from django.contrib import admin
from django.urls import path
from . import views
urlpatterns = [
path('index/', views.index)
]
app에 urls.py에서 from . import file을 해서 file을 import해준다.
urlpatterns에서 url 패턴을 비교해 qwer.com/profile/index 면 views.index로 연결해준다.
# profile/views.py
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("<div><h1>Hello visiter</h1><p>jueun is good at basketball</p></div>")
위에서 views.index에 요청이 오면 해당 html을 응답해준다.
실제로 실행해보면,
짠! 아주 쉽게 나의 웹사이트를 만들었다!
review
진짜 django는 작동방식이 신기한 것 같다!
열심히 공부해서 BSC할때 많은 도움이 되면 좋겠다.