1. Django 설치
powershell 또는 아나콘다 prompt 창에 다음과 같이 입력하여 설치한다.
pip install django
2. 프로젝트 생성
장고에서 '프로젝트'는 하나의 웹사이트이고, 프로젝트 안에는 여러 개의 앱이 존재한다. 이 앱들이 모여 웹 사이트를 구성한다. 여기서 앱이란 관리자 앱, 인증 앱 등과 같이 장고가 기본으로 제공하는 앱과 개발자가 직접 만든 앱을 칭한다. (장고의 앱은 프로젝트를 구성하는 작은 단위의 기능)
Pycharm을 실행한 뒤 New project를 클릭하여 새 프로젝트를 생성해준다.
Location에 프로젝트를 생성할 경로를 선택하고, Virtualenv로 선택, 그리고 아래 Location이 빨간색 밑줄처럼 venv로 설정되어있는지 확인한다. 이제 Create 클릭!
어느정도 기다리면 다음과 같이 가상환경이 잘 세팅된다.
3. Pycharm에서 Django 설치
File>Settings 클릭 후 Project > Python Interpreter 클릭
왼쪽 위 + 버튼을 누른다.
django를 검색해서 아래 Install Package를 클릭해 다운한다.
4. Django 프로젝트 생성 및 실행해보기
Pycharm의 터미널(단축키: Alt+F12)를 클릭하여 터미널을 실행한다.
아래는 Django 프로젝트를 생성하기 위한 명령어이다!
> django-admin.py startproject 프로젝트이름
아래와 같이 프로젝트 이름의 폴더가 생기는 것을 볼 수 있다.
이제 서버를 실행해보자. 서버를 실행하는 명령어는 python manage.py runserver이다.
> cd 프로젝트이름
> python manage.py runserver
브라우저를 열어 172.0.0.1:8000 혹은 localhost:8000을 입력하면 서버가 잘 돌아가고 있는 것을 볼 수 있다.
5. app 만들기
프로젝트 폴더로 이동해서 notes라는 애플리케이션을 만들었다.
> python manage.py startapp 앱이름
프로젝트 폴드에 notes라는 폴더가 생성된 것을 확인할 수 있다.
6. 프로젝트 설정 파일 변경
프로젝트 폴더에 있는 settings.py에서 설정값을 수정할 수 있다.
TIME_ZONE과 LANGUAGE_CODE
LANGUAGE_CODE를 en-us에서 ko-kr로 수정하고, TIME_ZONE을 UTC에서 ko-kr으로 변경한다.
그리고 아래 USE_TZ = True로 두면 장고가 알아서 시간대를 조정해준다. 그런데 USE_TZ옵션을 이용하면 일광절약시간제(Daylight Saving Time)을 사용하게 된다. 한국은 이것을 사용하지 않으므로 False로 둔다.
LANGUAGE_CODE = 'ko-kr'
TIME_ZONE = 'Asia/Seoul'
USE_TZ = False
이외에도 데이터베이스 설정을 바꾸는 DATABASES, 프로젝트에 포함되는 애플리케이션들 등록하는INSTALLED_APPS 등등 여러 설정 옵션들이 존재한다.
7. Hello world 테스트
1) hello world를 출력하는 index 함수 만들기
앱이름>views.py 에서 다음과 같이 입력. index는 페이지 요청에 대해 "Hello world"라는 httpResponse를 보내는 함수이다. 이 코드가 실행되도록 만들려면, 어떤 url 요청에 대해서 이 index 함수가 실행되어야하는지 지정해주어야한다.
우선 brain_note 사이트에 접속했을 때 notes라는 App이 실행되는 조건을 지정해주어야하고, notes라는 앱이 실행되면 어느 경우에 index 함수가 실행되어야하는지 지정해주어야한다.
2) urls.py에서 앱에 접근할 조건을 지정하는 함수 만들기
urls.py 파일은 페이지 요청이 발생하면 가장 먼저 호출되는 파일로 URL과 뷰 함수 간의 매핑을 정의한다. 뷰 함수는 views.py 파일에 정의된 함수를 말한다.
URL 매핑을 추가하기 위해 urlpatterns를 다음과 같이 수정한다.
views.index는 views.py 파일의 index 함수를 의미한다.
from django.contrib import admin
from django.urls import path
from notes import views
urlpatterns = [
path('admin/', admin.site.urls),
path('notes/', views.index),
]
이제 브라우저로 localhost:5000/notes 에 접속하면 다음과 같이 Hello world가 뜨는 것을 확인할 수 있다.
8. URL 분리
위 Hello world 테스트에서 추가적으로 url을 분리해볼 것이다. notes 앱과 관련된 것은 notes 앱 폴더 하위에 위치해야한다. 위와 같이 진행한다면, URL 매핑을 추가할 때마다 프로젝트/urls.py 파일을 수정해야한다. 하지만, 이 urls.py 파일은 앱이 아닌 프로젝트 성격의 파일이므로 이곳에는 프로젝트 성격의 URL 매핑만 추가되는 것이 맞다. 따라서 notes 앱에서만 사용하는 url 매핑을 notes/urls.py에 추가할 수 있도록 수정해줄 것이다.
먼저 프로젝트 폴더에 있는 urls.py를 다음과 같이 수정한다.
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('notes/', include('notes.urls')),
]
path('notes/', include('notes.urls'))는 notes/로 시작하는 페이지 요청 시, notes/urls.py 파일의 매핑 정보를 읽어서 처리하라는 의미이다. 따라서 이제는 notes/로 시작하는 페이지들을 프로젝트/urls.py 파일을 수정할 필요 없이 notes/urls.py 파일만 수정하면 된다.
이제 Pycharm에서 notes 폴더에 urls.py 파일을 생성한다. notes 폴더에서 우클릭 > New > Python File을 선택하면 된다. 그리고 다음과 같이 코드를 작성해준다.
여기서 경로에 ''가 사용된 이유는, 이미 프로젝트/urls.py 파일에서 notes/로 시작하는 url이 매핑되었기 때문이다. 다시 말하자면, 프로젝트/urls.py에 매핑된 notes/와 notes 앱 폴더의 urls.py에 매핑된 ''가 더해져서 views.index 함수와 매핑된다.
from django.urls import path
from . import views
urlpatterns = [
path('', views.index),
]
다시 실행해서 localhost:8000/notes 페이지를 요청하면 위와 동일한 결과가 나타나는 것을 확인할 수 있다!
'Web > Django' 카테고리의 다른 글
Django(장고)에서 POST 방식의 데이터 저장 (0) | 2021.08.03 |
---|---|
Django(장고) url 별칭과 네임스페이스 살펴보기 (0) | 2021.08.03 |
Django(장고) 템플릿과 데이터 조회 및 URL 매핑하기 (0) | 2021.08.02 |
Django(장고) 관리자 계정 생성 및 관리자 페이지 사용하기 (0) | 2021.08.02 |
Django ORM을 활용한 모델(model) 생성 및 데이터 처리하기 (0) | 2021.08.01 |