Develop/Django

Django - APP 만들기

Gr00t 2021. 1. 15. 18:40

첫번째 app

  • 프로젝트 내부에 app을 만들고 실행되는지 확인한다.

    app 생성

    • app을 생성하는 위치는 manage.py가 있는 위치이다.
    • app 생성 명령어
      $ python manange.py startapp [app_name]

      앱이 제대로 생성됐다면 아래와 같이 앱을 위한 패키지가 자동으로 생성된다.

      hello_app 생성

    app 패키지 구성

    • models.py : entity를 위한 파일
    • views.py : controller 역할을 하는 파일
    • migrations : DB를 migration 한 결과를 저장하는 폴더
    • templates : view 파일을 저장하기 위한 폴더 (생성 필요)
    • urls.py : request가 들어오는 url과 view를 연결하는 파일 (생성 필요)
    • settings.py : 환경 설정과 관련된 파일 (주로 앱을 등록할때 사용한다)

app 등록

  • 만든 app이 프로젝트에서 돌아가도록 추가해야한다.
  • 프로젝트 폴더에 settings.py에서 INSTALLED_APPS에 app 이름을 추가한다.

    ‼️리스트형태로 저장되고 있으므로 쉼표 (,)를 반드시 붙이고 추가한다‼️

    INSTALLED_APPS = [
        'django.contrib.admin',
        ...
    		'django.contrib.staticfiles',  # 쉼표 반드시 확인!
        "hello_app" # 새로 만든 앱 추가
    ]

index view 작성

  • views.py 에 index view를 controller할 함수를 정의한다.
  • urls.py 에 url과 view를 연결할 패턴을 정의한다.

    Controller 작성

    • 간단히 메세지를 전달하는 정도이므로 HttpResponse를 활용해 page를 생성하도록 한다.
      from django.http import HttpResponse
      
      
      def index(request):
          return HttpResponse("Hello, world. You're at the polls index.")

    Url 패턴 등록

    • controller를 작성하고나면 url에 연결해서 request가 들어왔을때 controller가 view를 반환할 수 있게 만들어줘야 한다.
    • app폴더urls.py 를 생성하고 어떤 url에 controller와 view를 연결할 것인지 등록한다.
      polls/urls.py¶
      from django.urls import path
      
      from . import views
      
      urlpatterns = [
          path('', views.index, name='index'),
      ]

    프로젝트에 APP url 등록

    • 서버가 실제로 돌아가는 환경은 프로젝트 단에서 일어난다.
    • app에 등록한 url을 프로젝트 단에서 받아올 수 있도록 프로젝트 단에도 추가해줘야한다.
      from django.contrib import admin
      from django.urls import include, path
      
      urlpatterns = [
          path('hello_app/', include('hello_app.urls')),
          path('admin/', admin.site.urls),
      ]

실행

  • 이제 다시 서버를 실행시켜 동작하는지 확인한다.
  • index의 url은 공백이지만, 프로젝트에서 참조하는 app의 url은 hello_app이다.
  • 정리하면 아래와 같은 순서로 url이 결정된다.
    1. 프로젝트에서 앱 참조 : 'hello_app/'
    1. 앱에서 index 참조 : ''

    ⇒ 최종 url : localhost:8000/hello_app

  • 서버를 실행하고 해당 url로 접속하면 아래와 같이 접속된 모습을 볼 수 있다.
    실행화면

'Develop > Django' 카테고리의 다른 글

[Django Rest Framework] To Do List  (0) 2021.03.16
Django - To Do List 만들기  (0) 2021.02.01
Django 설치  (0) 2021.01.15