$ python -m django --version
Django가 설치되었다는 가정하에 쉘에서 실행하는 명령어 입니다. 이 프로젝트는 python3.6 이상의 django3.1 버전으로 실행되어 그 이하의 버전일 경우 진행이 안될 수 있습니다.
Django를 처음 사용한다면, 초기 설정에 주의를 기울여야 합니다. Django project를 구성하는 코드를 자동 생성해야 하는데, 이 과정에서 데이터베이스 설정, Django 위한 옵션들, 어플리케이션을 위한 설정들과 같은 Django 인스턴스를 구성하는 수많은 설정들이 생성되기 때문입니다.
커맨드라인에서 cd 명령으로 코드를 저장할 디렉토리로 이동 한 후 프로젝트를 만들 명령어와 디렉토리 명인 'mysite'를 함께 입력합니다.나는 바탕화면에 만들기 위해 최초 쉘의 현재위치인 ~
에서 ~/Desktop
을 입력하여 이동한 후 mysite를 만들었다.
$ django-admin startproject mysite
이 프로젝트를 생성할 때에는 python과 django에서 사용하는 이름은 피해주어야한다.
그럼 startproject
를 입력하여서 mysite 디렉토리에 무엇이 생성되었는지 확인해보자!
mysite/
: 디렉토리명, django에서는 중요하지 않아 명칭을 바꿔주어도된다.manage. py
: 프로젝트와 다양한 방법으로 상호작용 하는 커맨드라인의 유틸리티 mysite/
: 프로젝트를 위한 python 패키지들이 자동으로 저장된다.mysite/__init__.py
: 패키지처럼 생각하라는 나타내는 빈파일mysite/settings.py
: 프로젝트의 환경 및 구성을 저장한다.mysite/urls.py
: 현재 Django project 의 URL 선언을 저장합니다.mysite/ssgi.py
: ASGI 호환 웹 서버가 프로젝트를 처리하는 진입점mysite/wsgi.py
: 현재 프로젝트를 서비스하기 위한 WSGI 호환 웹 서버의 진입점$ python manage.py runserver
꼭 명령어를 입력할 시에는 manage.py있는 장소에서 해야한다.
$ python manage.py startapp polls
가장 뒤에 polls
는 명령어가 아닌 앱의 이름 이다. 따라서 startapp
뒤에는 자신이 만들 앱의 이름을 작성하면된다.
view
를 호출하려면 연결된 url
이 있어야 한다. 우리가 만들려는 앱 디렉토리(polls/)
에 urls.py
라는 파일을 생성하면된다. 그럼 위에 나왔단 이미지에서 아래와 같이 추가된다.
urls.py를 생성하면
polls/urls.py
------------------------------
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
아래와 같이 코드가 포함되어 있습니다.
이제 최상위 urls.py
인 mysite/urls.py
에서 polls/urls.py
를 바라보게 설정합니다.
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),
]
django.urls.include를 import 하고, urlpatterns
리스트에 include() 함수를 다음과 같이 추가하면 url이 연결됩니다.
2개의 필수 인수인
route
와view
, 2개의 선택 가능한 인수로kwargs
와name
으로 이루어질 수 있다.
psth('route', 'view', 'kwargs', 'name')
route : URL 패턴을 가진 문자열,urlpatterns
의 첫 번째 패턴부터 시작하여, 일치하는 패턴을 찾을 때 까지 요청하기에 가장 신경을 많이쓰는 부분이다.
ex) https://www.example.com/myapp/에서 myapp/
이부분이다.
view : URL에 상응하는 view
를 지정하는 방식으로 함수뷰의 이름을 지정한다.
kwargs : 임의의 키워드 인수들은 목표한 view
에 사전형으로 전달한다.
name : URL 에 이름을 지으면, 템플릿을 포함한 Django 어디에서나 명확하게 참조하고, 단 하나의 파일만 수정해도 project
내의 모든 URL 패턴을 바꿀 수 있도록 도와줍니다.
위 함수는 다른 URLconf(urls.py)들을 참조할 수 있도록 도와주며,
예로 URLconf(polls/urls.py)가 존재하는 한 < /polls/ >, 또는 < /fun_polls/ >, < /content/polls/ >같은 어떤 root 경로에 연결하더라도, 앱은 여전히 잘 동작할 수 있습니다.