Django의 흐름 알기

8098 단어 pythondjangodjango

Django를 활용하여 프로젝트 만들어보기

Django가 설치가 되었는지 버전이 무엇인지 확인하기

$ 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 호출

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.pymysite/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이 연결됩니다.

간단하게 path, include 함수에 대해 알아보자.

path()

2개의 필수 인수인 routeview, 2개의 선택 가능한 인수로 kwargsname으로 이루어질 수 있다.
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 패턴을 바꿀 수 있도록 도와줍니다.

include()

위 함수는 다른 URLconf(urls.py)들을 참조할 수 있도록 도와주며,
예로 URLconf(polls/urls.py)가 존재하는 한 < /polls/ >, 또는 < /fun_polls/ >, < /content/polls/ >같은 어떤 root 경로에 연결하더라도, 앱은 여전히 잘 동작할 수 있습니다.

좋은 웹페이지 즐겨찾기