Tech Trail

[Django 주식 검색 웹 만들기 02] Django 웹 개발 시작: 프로젝트 및 앱 설정하기 (manage.py, urls.py, views.py) 본문

Project Showcase/[Django] 주식 검색 웹 만들기 [완]

[Django 주식 검색 웹 만들기 02] Django 웹 개발 시작: 프로젝트 및 앱 설정하기 (manage.py, urls.py, views.py)

_밍지_ 2024. 4. 4. 18:40
728x90
반응형
SMALL

Django 프로젝트를 시작하면서 가장 먼저 만나는 파일 중 하나가 manage.py입니다.

이 파일은 Django 프로젝트를 관리하고 다양한 작업을 수행할 때 사용하는 핵심 모듈입니다.

일반적으로 python manage.py runserver 명령을 사용하여 서버를 실행하고 웹 애플리케이션을 확인할 수 있습니다.

python manage.py runserver

 

 

서버를 실행해 보겠습니다. 서버가 실행되어야 우리가 만든 웹을 확인할 수 있습니다.

서버가 실행되면 아래와 같은 메시지가 표시됩니다.

 

 

 

이제 웹 브라우저를 열어서 주소창에 127.0.0.1을 입력해보세요.

그러면 로컬 호스트, 즉 여러분의 컴퓨터에서 실행 중인 서버로 접속할 수 있습니다.

이때 80008000번 포트를 의미합니다.

 

Django에서 서버를 실행할 때는 127.0.0.1:8000 또는 localhost:8000과 같은 형식으로 주소를 입력하여 서버에 접속할 수 있습니다.

 

이제 PyCharm으로 돌아와서 터미널에서 Ctrl+C를 누르면 서버를 중지할 수 있습니다.

다시 서버를 실행하려면 같은 명령을 사용하면 됩니다. 그러나 이미 사용 중인 8000번 포트를 다른 프로그램이 차지하고 있다면, 서버를 다시 실행할 때 해당 포트를 변경해야 할 수도 있습니다.

 

 

DjangoMVT 패턴을 따라 작동합니다.

각각의 구성 요소는 Model, View, Template을 의미합니다.

  • Model: 데이터베이스와 상호작용하는 부분으로, 데이터의 구조와 동작을 정의합니다.
  • View: 웹 애플리케이션의 동작을 결정하는 부분으로 MVC 패턴에서의 Controller와 비슷한 역할을 합니다.
  • Template: User에게 보여지는 화면을 담당하는 부분으로, HTML과 Django 템플릿 언어를 사용하여 화면을 구성합니다.

 

User가 URL을 입력하면, 해당 URL은 설정된 View에 접근하게 되며, 이 과정에서 DB에 접근하여 필요한 데이터를 가져오는 등 특정한 화면을 보여줍니다.

 

 

다시 돌아와서,

127.0.0.1:8000입력하면 처음에 내부적으로 접근하는 곳은 Django 프로젝트의 urls.py입니다.

Django 앱의 urls.py가 아니라, Django 프로젝트의 urls.py를 의미합니다. (주의)

 

 

 

 

urls.py 파일을 열어서 다음과 같이 작성해 주세요.

 

path('',include('stocks.urls')),

 

 

이렇게 설정하면 기본 URL로 접속했을 때 "stocks" 앱의 urls.py 파일로 이동합니다.

그러나 include 함수를 사용하기 위해서는 해당 함수를 import 해주어야 합니다.

따라서 코드 상단에 다음과 같이 import 문을 추가해 주세요.

 

 

 

 

이제 stocks 앱의 urls.py 파일을 생성해 보겠습니다.

 

 

 

 

  1. PyCharm에서 stocks 앱을 우클릭하고 "New"를 선택합니다.
  2. "Python File"을 선택하고 "urls.py"라고 이름을 지어줍니다.
  3. 이제 프로젝트의 urls.py 파일의 내용을 복사하여 방금 만든 stocks 앱의 urls.py 파일에 붙여 넣습니다.
  4. 필요 없는 부분은 삭제합니다. 예를 들어, admin에 대한 부분은 앱에서 관리하지 않을 것이므로 삭제합니다.
  5. include 함수도 필요하지 않으니 해당 부분도 삭제합니다.

 

아이 깔끔해~

 

 

views.py 파일에 home 함수를 생성해 보겠습니다.

 

path('',views.home, name='home'),

 

는 기본 URL에 대한 설정으로, 사용자가 웹 애플리케이션의 루트 경로로 접속했을 때 home 함수를 실행합니다.

 

 

만약에

 

path('a',views.home, name='home'),

 

 

이렇게 a를 넣어주면 'a'라는 경로에 대한 설정으로, 사용자가 웹 애플리케이션의 루트 경로에 '/a'를 추가하여 접속했을 때도 home 함수를 실행합니다.

(127.0.0.1:8000/a 입력 시 views.py 파일에 home 함수에 가라는 의미가 됩니다.)

 

 

다음으로 views.py 파일을 만들어야 하는데, 초기에는 비어 있습니다. 그러므로 먼저 필요한 HttpResponseimport 해야 합니다.

 

from django.http import HttpResponse

 

 

 

그리고 home 함수를 만들어줍니다.

 

def home(request):
    return HttpResponse("aaa")

 

그러나, 이것만으로는 오류가 발생합니다.

왜냐하면 urls.py 파일에서 views.py를 import 하지 않았기 때문입니다.

따라서 urls.py 파일의 상단에 다음과 같이 추가해야 합니다.

 

from . import views

 

 

터미널에 python manage.py runserver를 입력하여 웹 서버를 실행하고, 웹 브라우저를 열어 127.0.0.1:8000으로 접속하면, 웹 페이지에는 "aaa"가 출력됩니다.

 

 

 

 

이는 처음에 웹 프로젝트의 URL 파일에서 stocks 앱의 URL 파일로 이동하고, 그 후에 views 파일의 home 함수를 실행하여 "aaa"를 출력하는 과정을 거칩니다.

 

 

다른 앱으로 URL의 접근을 보낼 때는 include를 사용하고

 

 

앱 내부에서 URL을 처리할 때는

 

 

위와 같이 사용해 주면 됩니다~

728x90
반응형
LIST