1.1 django project
-
프로젝트 생성
가상 환경이 활성화 된 현재 폴더 안에 프로젝트를 생성. 명령어 마지막 `.` 주의.
project 를 생성할 때, Python 이나 Django 에서 사용중인 이름은 피해야 한다.
`-` 도 사용할 수 없다.
(ex. django, test, class, django-test...)
$ django-admin startproject intro . -
서버 실행
$ python manage.py runserver -
gitignore 설정
$ touch .gitignore-
https://www.gitignore.io/ 에서 django 를 선택해서 받은 코드를 `.gitingnore` 파일에 입력.
-
-
TIME_ZONE, LANGUAGE_CODE 설정
-
`settings.py`
LANGUAGE_CODE = 'ko-kr' TIME_ZONE = 'Asia/Seoul'
-
-
서버 재실행 및 한글화 확인
**상황에 따른 설정**
공식문서에 따르면, 단일 프로젝트에서는 `django-admin` 보다는 `manage.py`를 사용하는 것이 편할 것이라고 이야기한다. 기본적으로 후자는 프로젝트 경로를 시스템 path에 추가하며, settings.py 설정된 내용을 `DJANGO_SETTINGS_MODULE` 환경변수에 넣어서 활용한다.
다만, 나중에 프로젝트 및 app 단위별로 setting이 나뉘게 된다면 이 경우에는 `django-admin` 명령어에 CLI 옵션 `--settings` 를 통해 지정하여 실행할 수 있는 장점이 있다.
-
프로젝트 구조
django-intro/ manage.py intro/ __init__.py settings.py urls.py wsgi.py db.sqlite3
-
`django-intro/`: 디렉토리 바깥의 디렉토리는 단순히 프로젝트를 담는 공간. 이 이름은 Django 와 아무 상관이 없으니, 원하는 이름으로 변경이 가능.
-
`manage.py`: Django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티.
-
`django_intro/`: 디렉토리 내부에는 project 를 위한 실제 Python 패키지들이 저장됨. 이 디렉토리 내의 이름을 이용하여, (`django_intro.urls` 와 같은 식으로) project 어디서나 Python 패키지들을 import 할 수 있다.
-
`__init__.py`: Python 으로 하여금 이 디렉토리를 패키지 처럼 다루라고 알려주는 용도의 단순한 빈 파일.
-
`settings.py`: 현재 Django project 의 모든 환경/구성을 저장.
-
`urls.py`: 현재 Django project 의 URL 선언을 저장. Django 로 작성된 사이트의 "목차". 사이트의 url 과 views 의 연결을 지정. 모든 url 매핑 코드가 포함될 수 있지만, 특정한 어플리케이션에 매핑의 일부를 할당해주는 것이 일반적.
-
`wsgi.py`: 현재 project 를 서비스 하기 위한 WSGI 호환 웹 서버의 진입점.
-
`WSGI(Web server gateway interface)`: 파이썬 웹 프레임워크에서 사용하는 웹서버 규칙
-
1.2 django application
실제로 특정한 역할을 해주는 친구가 바로 application
프로젝트는 이러한 어플리케이션의 집합이고, 실제 요청을 처리하고 페이지를 보여주고 하는 것들은 이 어플리케이션의 역할
하나의 프로젝트는 여러 개의 어플리케이션을 가질 수 있다.
어플리케이션은 하나의 역할 및 기능 단위로 쪼개는 것이 일반적이나 작은 규모의 서비스에서는 잘 나누지 않는다. 반드시 이렇게 나눠야 한다는 기준 또한 없다.
각각의 어플리케이션은 MTV 패턴으로 구성되어 있다.
-
Application 만들기
$ python manage.py startapp home -
Application 구조
home/ __init__.py admin.py apps.py models.py tests.py views.py migrations/ __init__.py-
`admin.py` : 관리자용 페이지 커스터마이징 장소.
-
`apps.py` : 앱의 정보가 있는 곳. 우선 우리는 수정할 일이 없다.
-
`models.py` : 앱에서 사용하는 Model 를 정의하는 곳.
-
`tests.py` : 테스트 코드를 작성하는 곳.
-
`views.py` : view 들이 정의 되는 곳. 사용자에게 어떤 데이터를 보여줄지 구현하는 곳.
-
-
Application 등록
-
방금 생성한 application 을 사용하려면 프로젝트에게 앱을 만들었다고 알려주어야 사용 가능하다.
-
`home > apps.py > class HomeConfig()` 구조 이기 때문에 `home.apps.HomeConfig` 로 작성한다.
-
`settings.py`
-
INSTALLED_APPS = [
# Local Apps
'home.apps.HomeConfig',
# Django Apps
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
# 항상 `,`(쉼표) 를 작성해주고 마치는 습관을 가진다.
# 혹은 그냥 'home' 이라고 작성할 수 있다. 다만, 후반부 자세한 설정에 한계가 있기 때문에 위처럼 작성한다.
'Python2 > Django(장고)' 카테고리의 다른 글
1 (0) | 2019.06.12 |
---|