$ python -m django --version: 장고 설치 및 버전을 확인한다
만약 설치가 되어있지 않다면 $ python -m pip install Django으로 설치를 진행한 후 작업을 진행합니다.
커맨드라인에서 cd 명령으로 코드를 저장할 디렉토리로 이동 한 후, 다음의 명령을 수행합니다.
$ django-admin startproject mysite:현재 디렉토리에서 mysite라는 디렉토리를 생성
mysite 디렉토리를 생성한 후 tree 라는 명령어를 통해 startproject에 무엇이 생성 되는지를 확인할수 있다
mysite/ manage.py mysite/ __init__.py settings.py urls.py asgi.py wsgi.py ```
manage.py: Django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티 입니다.
mysite/ 디렉토리 내부에는 프로젝트를 위한 실제 Python 패키지들이 저장됩니다.이 디렉토리 내의 이름을 이용하여, (mysite.urls 와 같은 식으로) 프로젝트의 어디서나 Python 패키지들을 임포트할 수 있습니다.
mysite/init.py: Python으로 하여금 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 단순한 빈 파일입니다.
mysite/settings.py: 현재 Django 프로젝트의 환경 및 구성을 저장합니다. Django settings에서 환경 설정이 어떻게 동작하는지 확인할 수 있습니다.
mysite/urls.py: 현재 Django project 의 URL 선언을 저장합니다. Django 로 작성된 사이트의 "목차" 라고 할 수 있습니다.
mysite/asgi.py: An entry-point for ASGI-compatible web servers to serve your project
mysite/wsgi.py: 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점입니다
Django 프로젝트가 제대로 동작하는지 확인해 봅시다. mysite 디렉토리로 이동하고, 다음 명령어를 입력
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until
they are applied.
Run 'python manage.py migrate' to apply them.
8월 03, 2020 - 15:50:53
Django version 3.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C
설문조사 앱 만들기
$ python manage.py startapp polls
polls라는 디렉토리가 생겼습니다. 이걸 펼쳐놓으면 아래와 같습니다.
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
이 디렉토리 구조는 투표 어플리케이션의 집이 되어줄 것입니다.
첫 번째 뷰 작성하기
첫 번째 뷰를 작성해봅시다. "polls/view.py"를 열어 다음과 같은 파이썬 코드를 입력합니다
polls/view.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
```python
$ python -m django --version: 장고 설치 및 버전을 확인한다.
만약 설치가 되어있지 않다면 $ python -m pip install Django으로 설치를 진행한 후
작업을 진행합니다.
1.프로젝트 만들기
커맨드라인에서 cd 명령으로 코드를 저장할 디렉토리로 이동 한 후, 다음의 명령을 수행합니다.
$ django-admin startproject mysite:현재 디렉토리에서 mysite라는 디렉토리를 생성
mysite 디렉토리를 생성한 후 tree 라는 명령어를 통해 startproject에 무엇이 생성 되는지를
확인할수 있다
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
manage.py: Django 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티 입니다.
mysite/ 디렉토리 내부에는 프로젝트를 위한 실제 Python 패키지들이 저장됩니다.
이 디렉토리 내의 이름을 이용하여, (mysite.urls 와 같은 식으로) 프로젝트의 어디서나
Python 패키지들을 임포트할 수 있습니다.
mysite/__init__.py: Python으로 하여금 이 디렉토리를 패키지처럼 다루라고 알려주는 용도의 단순한
빈 파일입니다.
mysite/settings.py: 현재 Django 프로젝트의 환경 및 구성을 저장합니다.
Django settings에서 환경 설정이 어떻게 동작하는지 확인할 수 있습니다.
mysite/urls.py: 현재 Django project 의 URL 선언을 저장합니다. Django 로 작성된 사이트의
"목차" 라고 할 수 있습니다.
mysite/asgi.py: An entry-point for ASGI-compatible web servers to serve
your project
mysite/wsgi.py: 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점입니다
개발서버
Django 프로젝트가 제대로 동작하는지 확인해 봅시다. mysite 디렉토리로 이동하고, 다음 명령어를 입력
$ python manage.py runserver
Performing system checks...
System check identified no issues (0 silenced).
You have unapplied migrations; your app may not work properly until
they are applied.
Run 'python manage.py migrate' to apply them.
8월 03, 2020 - 15:50:53
Django version 3.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
설문조사 앱 만들기
$ python manage.py startapp polls
polls라는 디렉토리가 생겼습니다. 이걸 펼쳐놓으면 아래와 같습니다.
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
views.py
이 디렉토리 구조는 투표 어플리케이션의 집이 되어줄 것입니다.
첫 번째 뷰 작성하기
첫 번째 뷰를 작성해봅시다. "polls/view.py"를 열어 다음과 같은 파이썬 코드를 입력합니다
polls/view.py
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
Django에서 가장 간단한 형태의 뷰입니다. 뷰를 호출하려면 이와 연결된 URL 이 있어야 하는데,
이를 위해 URLconf가 사용됩니다.
polls 디렉토리에서 URLconf를 생성하려면, urls.py라는 파일을 생성해야 합니다
polls/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
다음 단계는, 최상위 URLconf 에서 polls.urls 모듈을 바라보게 설정합니다.
mysite/urls.py 파일을 열고, django.urls.include를 import 하고, urlpatterns 리스트에
include() 함수를 다음과 같이 추가합니다.(mysite/mysite 위치)
mysite/urls.py
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
include() 함수는 다른 URLconf들을 참조할 수 있도록 도와줍니다.
Django가 함수 include()를 만나게 되면, URL의 그 시점까지 일치하는 부분을 잘라내고,
남은 문자열 부분을 후속 처리를 위해 include 된 URLconf로 전달합니다.
include()에 숨은 아이디어 덕분에 URL을 쉽게 연결할 수 있습니다.
polls 앱에 그 자체의 URLconf(polls/urls.py)가 존재하는 한, "/polls/", 또는
"/fun_polls/", "/content/polls/"와 같은 경로, 또는 그 어떤 다른 root 경로에
연결하더라도, 앱은 여전히 잘 동작할 것입니다.
index 뷰가 URLconf에 연결되었습니다. 잘 작동하는지 확인하기 위해 다음 명령을 입력
$ python manage.py runserver
브라우저에서 http://localhost:8000/polls/를 입력하면 index 뷰에 정의한
"Hello, world. You're at the polls index." 가 보일 것입니다.