멋쟁이사자처럼 at 인하대
2. Django로 "Hello, World"
8기 운영진 이대현
로컬 서버에 Hello World가 적힌 페이지를 띄워봅시당
“내가 작성한 소스코드를 편하게 관리할 수 있도록 도와주는 버전 관리 툴”
1. 개발환경 세팅
for Window
* 2020-06-01 기준 2.27.0 이 최신버전
1. 개발환경 세팅
<- 바탕화면에 마우스 우클릭하고,
Git Bash Here 클릭
1. 개발환경 세팅
그럼 자주쓰는 터미널 명령어를 알아봅시다.
1. 개발환경 세팅
mkdir likelion
cd likelion
cd ..
//다시 lkelion 폴더로 이동해보세요.
pwd
touch likelion.html likelion.css
ls
rm likelion.css
//삭제가 잘 됐는지 리스트를 확인해보세요.
code .
* ctrl + shift + ` (숫자 1 왼쪽) 을 눌러 vscode 내에서 터미널을 사용할 수 있어요.
1. 개발환경 세팅
1. 우선 python이 잘 설치되어 있는지 확인해봅니다.
2. 가상환경 생성
$ python -m venv myvenv
$ python --version
1. 개발환경 세팅
1. 가상환경 실행
2. 명령어 줄위에 (myvenv) 이런게 생겼습니다.
가상환경이 실행되었다는 뜻입니다.
$ source myvenv/Scripts/activate
3. Django 설치
$ pip install django
Successfully installed asgiref-3.2.7 django-3.0.6 pytz-2020.1 sqlparse-0.3.1 성공!
2. Django 동작 원리
파이썬으로 작성된 오픈소스 웹 어플리케이션 프레임워크
웹서비스를 만들때마다 반복해서 만들어야 하는 것들을
표준화해서 묶어 놓은 개발환경
웹서비스를 만들때마다 반복해서 만들어야 하는 것들을
🤢 ...만약 장고가 없다면?🤮
2. Django 동작 원리
Node JS, Ruby on Rails, JAVA Spring, PHP Laravel .. 다양한 웹프레임워크가 있지만....
파이썬을 선택한 이유 3가지
장고를 선택한 이유 4가지
2. Django 동작 원리
MTV 패턴
model, template, view에 해당하는 파일(혹은 폴더)이 각각 하나씩 있어서,
그 파일들 끼리 데이터를 주고받아
사용자의 요청을 수행한다고 생각하면 됩니다.
2. Django 동작 원리
브라우저
URLS
Views
Models
Templates
Database
1. 사용자가 1번강의(data)를 보겠다고 URL 요청을 보냄
2. View(중간관리자)는 받은 요청을 확인하고, Model(데이터 관리)에 1번강의를 찾아달라고 지시를 내림
3. Model(데이터 관리)은 Database에서 1번강의를 찾아서 View(중간관리자)에 전달
4. View (중간관리자)는 1번강의를 Template에 전달하여, HTML 파일과 조합하여 화면을 사용자에게 전달
2. Django 동작 원리
Django 동작 원리 = 여러 파일들끼리 데이터를 주고받는 티키타카를 통해 동작한다.
우리의 할일 = 각 MTV 파일에 코드 작성하기
실제로 장고 프로젝트를 처음 시작했을 때
어떤식으로 파일이 구성되어있는지 확인해봅시다.
3. Django 실습
웹서버에 HELLO WORLD 를 출력하는 가장 간단한
3. Django 실습
1) 가상환경이 켜진 상태에서 firstsite 라는 프로젝트 폴더를 생성한다.
$ django-admin startproject firstsite
2) 터미널 경로를 생성된 프로젝트 폴더로 이동한다.
$ cd firstsite_project
헷갈리지 않게 상위 프로젝트 폴더 이름을 firstsite_project 로 변경한다.
firstsite_project
firstsite
settings.py : 프로젝트의 환경/구성을 저장하는 파일
urls.py : Django 프로젝트의 URL 들을 관리하는 파일
기타 아직은 덜 중요한 파일들
manage.py : 서버를 작동시키는 중요한 파일
3. Django 실습
app 만드는 걸 포함해서
앞으로 모든 작업은 이 디렉토리 경로에서 진행.
3. Django 실습
$ python manage.py startapp hello
app을 만드니 view가 생겼네요!
view 역할이 모라고 했져?
3. Django 실습
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#여기 아래에 추가!
'hello.apps.HelloConfig',
]
"hello/apps.py 파일을 열어보면 helloConfig 라는 클래스가 정의되어 있는데, 그걸 등록해주겠다" 라는 의미입니다.
3. Django 실습
# hello/templates/home.html
<h1>
Hello, World!
</h1>
3. Django 실습
# hello/views.py
def home(request):
return render(request, 'home.html')
하나의 html 파일을 브라우저에 전달하기 위해 사용하는 함수의 가장 기본적인 모습입니다.
3. Django 실습
사용자가 어느 사이트 주소로 접속했을 때,
즉 url 요청을 보냈을 때 그 url로 알맞은 html 파일을 보내주기 위해 url과 view를 1대1로 연결해주는 작업이 필요할 것 같습니다.
원래 이 작업이 매우 복잡하고 어려웠는데, django 2.0 부터는
path() 라는 내장함수를 이용해 아주 쉽게 url과 view를 연결할 수 있게됐어요.
3. Django 실습
firstproject/urls.py
1. hello 앱 안에 있는 views.py의 함수들을 import 해온다.
import hello.views
2. urlpatterns에 path() 함수를 추가한다.
urlpatterns = [
path('admin/', admin.site.urls), # 원래 있던 path
path('', hello.views.home, name='home'),
]
3. Django 실습
path(경로, view에 정의된 함수, 이름),
path('', hello.views.home, name='home'),
가능한 view의 함수 이름과 url path 이름을 일치시켜주는 게 (정신건강에)좋읍니다.
3. Django 실습
pfrom django.contrib import admin
from django.urls import path
import hello.views
urlpatterns = [
path('admin/', admin.site.urls),
path('', hello.views.home, name='home'),
]
완성된 firstproject/urls.py
3. Django 실습
python manage.py runserver
3. Django 실습
각 파일들이 어떤 역할을 하고, 어떻게 연결되어있는지 이해하는게 django를 학습하는 핵심!