본문 바로가기
도서로 공부하는 프로그래밍/코딩 자율학습

[장고] 앱 생성하고 확인하기

by 열공노년 2024. 2. 19.
반응형

 

Django 개발 서버가 로컬 컴퓨터에서 성공적으로 실행되고 있습니다. 그러나 스크린샷에는 18개의 적용되지 않은 마이그레이션이 있으며 이는 코드 내에서 데이터베이스 스키마에 변경이 있었지만 실제 데이터베이스에는 아직 반영되지 않았음을 의미합니다.

언급된 마이그레이션은 관리자 인터페이스, 인증, 컨텐츠 타입, 사용자 세션을 처리하는 표준 Django 애플리케이션인 `admin`, `auth`, `contenttypes`, `sessions` 앱과 관련이 있습니다.

이 문제를 해결하기 위해서는 터미널에서 `python manage.py migrate` 명령어를 실행해야 합니다. 이 명령어는 마이그레이션을 데이터베이스에 적용하여 Django 모델에 의해 정의된 현재 스키마로 데이터베이스를 업데이트할 것입니다.

또한, `favicon.ico`에 대한 `Not Found` 오류가 있어, 서버가 브라우저 탭에 표시되어야 할 파비콘 파일을 찾지 못했음을 나타냅니다. 이것은 Django 애플리케이션의 기능성에 영향을 미치지 않는 비판적인 오류는 아니지만, 파비콘을 사용하고 싶다면 `favicon.ico` 파일을 정적 파일 디렉터리에 추가해야 합니다.


caption: 개발 서버 구동 스크립트 실행
caption: 웹브라우저에서 장고 개발 서버 구동



Django에서 마이그레이션 처리나 정적 파일이란?

Django에서 '마이그레이션 처리'는 데이터베이스 스키마를 관리하는 방법을 의미합니다. 여기서 '스키마'란 데이터베이스의 구조, 즉 테이블, 칼럼, 인덱스 등을 말합니다. 마이그레이션은 모델의 변경사항(예를 들어 새로운 필드 추가, 필드 삭제, 필드명 변경 등)을 데이터베이스 스키마에 적용하는 과정입니다.

 

pybo 앱 생성

caption: 앱 생성을 위한 장고 명령
caption: 앱 'pybo' 생성

 

생성된 앱 'pybo'에 등록된 파일입니다. 개발 서버를 재구동하고 브라우저에서 'localhost:8000/pybo'로 성공 여부를 확인합니다. 결과는 '404 에러'가 발생합니다.

caption: 404 에러 발생

 

위 에러(404 에러)는 클라이언트가 서버에 요청한 페이지나 리소스를 서버가 찾을 수 없을 때 발생하는 HTTP 응답 코드입니다. '페이지를 찾을 수 없음'이라는 의미를 가지고 있으며, 웹 브라우저나 다른 HTTP 클라이언트가 요청한 웹 페이지(URL)가 서버에 없거나, 링크가 잘못되었을 때 나타납니다.

 

이 오류는 사용자가 요청한 'pybo' 페이지를 찾을 수 없다는 처방입니다. 에러 메시지는 그 관계를 기록하고 있습니다. 이 문제를 해결하기 위해 'config/urls.py'를 확인합니다.

caption: 확인한 config.urls.py

 

pybo에 대한 정보 등록

아직 pybo에 대한 정보가 등록되지 않은 상태입니다. 다음과 같이 'pybo' 정보를 입력합니다.

caption: config.urls 수정

추가된 내용은 'pybo' 앱에 views 모듈을 가지고 오라는 내용입니다. path 함수를 사용하여 'pybo/' URL과 'views.indx'를 매핑합니다. 'views.index'는 views.py 파일의 index 함수를 의미합니다. 이어서 해야할 작업은 'pybo'의 'views.py'를 수정하는 것입니다.

caption: 수정 전
caption: 수정 후

구동 서버와 앱의 관계

앱의 변동을 읽어 구동 서버의 상황은 매번 달라집니다. 'pybo.views'에 'index' 없는 상태였다가 변동됐다는 것을 메시지로 남기고 있습니다. 그럼과 동시에 시스템을 체크하고 있습니다. 체크 결과는 데이터베이스 마이그레이션이 필요하다는 것입니다.

caption: 구동 서버 상황과 pybo/views.py 변경 상황

성공한 환영 메시지

'views.py'에 환영 메시지를 'index' 함수에 올렸기 때문에 그 기록이 브라우저에 출력된 것입니다. 즉 주소로 요청한 내용을 서버에서 해석하여 그 결과를 보여주는 것입니다.

caption: pybo viewer

정리

브라우저에서 'pybo' 요청을 하게되면 서버에서는 받은 요청을 'config/urls.py'에서 해석해서 'pybo/views.py 파일의 'index' 함수를 호출합니다. 'pybo/views.py' 파일은 index 함수를 실행해 결과를 웹 브라우저에 전달합니다.

반응형