Project 생성

Kim Jin Seong·2022년 6월 29일
0

Django

목록 보기
10/10
post-thumbnail

Django Tutorial 따라가기

https://docs.djangoproject.com/ko/4.0/intro/tutorial01/


목표

  • 간단한 설문조사( Polls ) 어플리케이션 제작
  • 투표 가능한 개방 사이트 구현
  • 관리자 전용 사이트 구현

프로젝트 생성

$ django-admin startproject {site_name}

생성 파일

  • mysite/
    • manage.py
    • mysite/
      • __init__.py
      • settings.py
      • urls.py
      • asgi.py
      • wsgi.py

파일 별 역할

  • manage.py
    : Django 프로젝트와 상호작용하는 커맨드라인 유틸리티
  • mysite/
    : 프로젝트를 위한 실제 Python 패키지를 저장
    ( 이 디렉토리 내의 이름을 이용해 프로젝트 어디서나 Python 패키지 임포트 )
  • mysite/__init__.py
    : Python에게 이 디렉토리를 패키지처럼 다루라고 알려주는 빈 파일
  • mysite/settings.py
    : Django 프로젝트의 환경 및 구성 저장
  • mysite/urls.py
    : Django 프로젝트의 URL 선언 저장( = 사이트 목차 )
  • mysite/asgi.py
    : 프로젝트 서비스를 위한 ASGI-호환 웹 서버의 진입점
  • mysite/wsgi.py
    : 프로젝트 서비스를 위한 WSGI 호환 웹 서버의 진입점

개발 서버 시작

$ python manage.py runserver
  • 개발 서버는 순수 Python으로 작성된 경량 웹 서버로 운영 준비가 될 때까지 Apache와 같은 운영 서비스를 구성할 필요 없이 신속하게 개발할 수 있도록 Django에 포함시켰다.
  • 개발 중에만 사용할 수 있도록 되어 있기 때문에 운영 환경과 유사한 환경에서 사용은 자제한다.
  • http://127.0.0.1:8000/ 을 통해 접속
  • 요청이 들어올 때마다 자동으로 Python코드를 불러오기 때문에 코드 변경사항을 위해 재가동은 불필요( but, 파일 추가 x )

포트 및 IP변경

$ python manage.py runserver 8080
$ python manage.py runserver 0:8000

Project vs APP

  • APP
    : 블로그, 데이터베이스, 의견조사 등의 작업을 수행하는 웹 애플리케이션
  • Project
    : 특정 웹 사이트에 대한 구성 및 앱의 모음으로 한 프로젝트에 여러 개의 앱이 포함될 수 있다.

설문조사 앱 생성

$ python manage.py startapp polls
  • polls/
    • __init__.py
    • admin.py
    • apps.py
    • migrations/
      • __init__.py
    • models.py
    • tests.py
    • views.py

최상위 URLconf에 polls.urls 모듈 추가

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(0를 만나게 되면 URL의 그 시점까지 일치하는 부분을 잘라내고, 남은 문자열 부분을 후속 처리를 위해 include된 URLconf로 전달한다.
    ( admin 제외 모든 다른 URL 패턴을 포함할때마다 항상 사용 )

path(route, view, kargs=None, name=None)

  • 필수 인수
    • route
      : URL 패턴을 가진 문자열로 Django는 urlpatterns의 첫 번째 패턴부터 시작해 일치하는 패턴을 찾을 때까지 요청된 URL을 각 패턴과 리스트의 순서대로 비교한다.
    • view
      : 일치하는 패턴을 찾으면 HttpRequest 객체를 첫번째 인수로 하고 경로로부터 캡쳐된 값을 인수로해서 특정한 view 함수를 호출
    • kwargs
      : 생략
    • name
      : URL에 이름을 지어 Django 어디서나 참조하도록 한다.
profile
Data Study

0개의 댓글