Django - 기초

Lee Ju-Hyeon(David)·2021년 9월 7일
0

Django

목록 보기
1/10
post-thumbnail
  • 빠르고, 깔끔하고, 실용적인 디자인을 장려하는 하이-레벨 파이썬 웹 프레임워크
  • 웹 개발에 있어서 번거로운 것들을 처리함으로써, 앱 제작에만 집중할 수 있다.

1. Django 특징

  • complete
  • versatile
  • secure
  • scalable
  • maintainable
  • portable

2. MTV Pattern

장고에서는 MTV 패턴이라고 하는데 이는 MVC패턴과 유사하다.



URLs

단일 함수로 처리하지 않고 분리된 view를 작성한다. 이 점이 리소스 유지보수에 더 효과적이다. URL mapper는 요청된 URL을 기준으로 HTTP 요청을 적절한 view로 보내주기 위해 사용한다.

View

HTTP 요청을 수신하고 HTTP 응답을 반환하는 요청을 처리하는 함수. Model을 통해 필요한 데이터에 접근한다. Template에 응답의 서식을 맡긴다.

Models

데이터베이스 구조를 정의하고 쿼리하는 법을 제공하는 파이썬 객체

Templates

파일의 구조나 레이아웃을 정의하고(.html), 실제 내용을 요여주는 텍스트 파일. HTML 템플릿을 이용해서 동적으로 페이지를 만들고 Model에서 가져온 데이터로 채운다.

3. 시작하기

3.1 Django 설치 및 프로젝트 생성

$ pip install django
$ django-admin startproject workout_record
$ python manage.py runserver

장고를 설치하고 프로젝트를 생성한 뒤에 서버를 실행한다.

서버가 잘 작동하면 위와 같은 화면이 출력된다.

3.2 앱 생성 및 등록

$ python manage.py startapp records

앱을 생성하면 위와 같은 구조로 파일이 생성된다. Django 프로젝트를 진행하면서 수정하는 파일들의 역할은 다음과 같다.

  • admin.py
    관리자용 페이지 설정
  • model.py
    앱에서 사용하는 Model을 정의하는 곳. 즉 데이터베이스의 구조를 저장한다.
  • views.py
    view 함수들이 정의되는 곳으로 url요청에 따라 model의 데이터를 처리하는 함수가 정의된다.


forms.py, urls.py처럼 앱을 처음 만들면 자동으로 생성되는 파일이 아닌 직접 만들어야 하는 파일들도 있다. 자세한 내용은 나중에 살펴보자.

앱을 생성했다면 setting.py에 앱을 등록해줘야 한다.

INSTALLED_APPS = [
    'records', # 앱 등록
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

setting.py의 33번째 줄에 작성되어 있는 코드로 설치된 앱들의 목록이 나열되어 있다. records처럼 직접 만든 앱은 추가해줘야 하고, 그 아래에 기본 앱들은 앱 생성시 자동으로 추가되어 있다.
(반드시 생성 후 등록해야 한다.)

# 언어 설정. 한국은 ko-kr
LANGUAGE_CODE = 'en-us'

#시간대 설정. 한국은 Asia/Seoul
TIME_ZONE = 'UTC'

# Django의 번역 시스템 활성화 여부
USE_I18N = True

# 데이터의 지역화 형식을 기본적으로 활성화할지 여부
# True -> locale의 형식을 사용해서 숫자, 날짜 표시
USE_L10N = True

# datetimes가 기본 시간대 인식 여부
# True -> 내부적으로 시간대 인식 날짜/ 시간을 이용
USE_TZ = True

setting.py의 100번째 줄 근처에 있는 내용으로 프로젝트의 언어와 지역, 시간대를 설정하는 내용이다. 게시판과 같은 앱을 만들 때, 작성 시간이나 수정 시간 같은 것들을 기록할 때 설정해야 하는 부분이다.





참조

0개의 댓글