Django 기초: 데이터베이스 연결 및 프로젝트 설정까지의 여정



Django 기초: 데이터베이스 연결 및 프로젝트 설정까지의 여정

이 글에서는 Django라는 파이썬 웹 프레임워크를 활용하여 기초적인 웹 프로젝트를 설정하는 과정을 자세히 풀어보려고 해요. 제가 직접 체크해본 결과, Django의 기본 구조와 설정 파일, URL 경로 설정 방법, 앱의 기본 구조에 대해 이해하는 것이 매우 중요하다는 것을 알게 되었답니다.

Django의 기본 이해와 프로젝트 설정

Django는 빠르고 효율적인 웹 애플리케이션 개발을 위해 설계된 프레임워크입니다. 제가 경험해본 바로는, 프로젝트의 처음 단계는 기본적인 설치와 설정부터 시작하더군요. 프로젝트를 생성한 후에 꼭 알아야 할 내용들은 다음과 같습니다.

 

👉 ✅ 상세정보 바로 확인 👈



 

  1. 필수 설정 파일

Django 프로젝트의 기본 설정 파일 구조는 다음과 같습니다.

파일명 설명
settings.py 프로젝트에 대한 다양한 설정이 들어있는 파일
urls.py URL 라우팅을 설정하는 파일
manage.py 관리 커맨드 실행을 위한 파일

이 설정 파일들을 통해 Django 프로젝트 전반에 대한 기초적인 정보들을 정의할 수 있어요.

2. URL 라우팅 설정

저는 각 기능을 앱으로 만들면서 설정하게 되었는데, 이 과정에서 URL 라우팅이 중요하다는 것을 깨달았어요. config 폴더 내의 urls.py 파일에서는 각 앱의 URL을 등록한답니다. 예를 들어:

python
path('input_url/', ex01.views.input_page),

이렇게 작성하여 특정 URL로 접속 시 특정 함수를 실행하게 설정할 수 있답니다.

Django 앱 구조와 기능

각 기능을 나누어 앱으로 만들어야 하는데, 앱 구조는 기본적으로 다음과 같은 파일들로 구성됩니다.

1. 앱 구성 요소

파일명 설명
admin.py 관리자가 접근 시 보여지는 화면을 정의
apps.py 앱을 프로젝트에 등록하는 기능
models.py 데이터베이스와의 관련 설정을 정의
views.py 실질적으로 파이썬 코드가 실행되는 부분
tests.py 테스트 코드를 작성하는 파일
migrations/ 데이터베이스 스키마 관련된 설정을 위한 폴더

예를 들어, views.py 파일에서 함수를 정의하고, urls.py에서 그 함수에 대한 URL을 연결하는 작업을 하게 됩니다.

2. MVT 패턴의 이해

Django는 MVT(Model-View-Template) 구조를 따릅니다. 저는 이 구조를 처음에 잘 이해하지 못했지만, 보통 모델은 데이터 처리, 뷰는 사용자 요청에 대한 응답, 템플릿은 사용자에게 보여줄 UI를 정의하는 역할을 담당한답니다. 저는 템플릿을 사용하여 HTML 파일을 구성하고 이를 사용자에게 반환해주는 방식으로 작업을 진행했어요.

클라이언트와 서버 간 데이터 흐름

Django를 통해 클라이언트로부터 데이터를 수신하고 처리하여 다시 클라이언트에게 결과를 보내는 것이 가능합니다. 이에 대해 실습을 진행해봤어요.

1. GET 방식의 데이터 전송

클라이언트가 서버에 요청하기 위해서는 URL에 데이터를 포함하여 전송할 수 있습니다. 예를 들어:

html
<a href="/get_data?num1=10&num2=20">보내기</a>

GET 방식으로 요청하면 서버에서 해당 데이터를 처리하게 되지요.

2. POST 방식의 데이터 전송

저는 HTML 폼을 통해 POST 방식으로 데이터를 전송하기도 했습니다. 다음은 예시 코드에요.

“`html

{% csrf_token %}



“`

이런 방식으로 클라이언트가 서버로 데이터 전송을 하면, 서버는 이를 처리하여 결과를 다시 클라이언트에게 전달해 줍니다.

랜덤 번호 생성하기: 실습 프로젝트

제가 진행했던 실습 중 하나는 랜덤 번호 생성이었어요. 아래의 함수는 웹 요청을 처리하는 코드입니다.

python
def Pension(request):
lottery = []
lottery.append("당신의 연금복권 번호는: ")
...
return render(request,'test.html', context)

이 코드에서 우리는 사용자로부터 입력받은 수에 따라 여러 개의 랜덤 번호를 생성해주고, 그 결과를 템플릿 파일로 반환하죠. 이러한 기능은 사용자가 실시간으로 결과를 확인할 수 있도록 돕습니다.

게시판 기능 구현의 기초

Django의 기본 개념을 실천적으로 적용하기 위해 게시판 기능을 추가로 구현해보았어요. 게시판을 통해 글 작성, 수정, 삭제 기능을 추가했습니다. 각 기능은 다음과 같이 설정했답니다.

1. URL과 뷰 함수 설정

아래는 게시판의 각 기능에 대한 URL과 뷰 함수의 매핑을 나타낸 부분이에요.

python
path('board/create/', board.views.create),
path('board/read/', board.views.read),

이러한 매핑을 통해 요청이 들어오면 각각의 함수를 실행하게 된답니다.

2. HTML 파일 연결

각 뷰 함수에서 반환하는 HTML 파일을 설정하여 사용자가 볼 수 있도록 했어요. 이런 구조를 통해 시스템 내에서 유기적인 연결이 이루어지죠.

데이터베이스와의 연결

이제는 데이터베이스 연결에 대한 준비를 해야 할 단계에요. Django는 ORM(Object-Relational Mapping)을 사용하여 데이터베이스와의 상호작용을 수월하게 해주는데, ORM 사용의 장점으로는 데이터베이스를 직접 다루지 않고도 데이터 구조를 설정하고 관리할 수 있다는 점이겠습니다.

제가 알아본 바로는, Django에서는 설정 파일의 DATABASES 항목에서 데이터베이스 연결 정보를 설정할 수 있습니다.

자주 묻는 질문 (FAQ)

Django는 기본적으로 어떤 구조인가요?

Django는 MVT(Model-View-Template) 구조를 사용하며, 이는 데이터 모델, 사용자 요청 처리, UI 프레임워크를 분리하여 관리합니다.

Django 프로젝트에서 앱은 어떻게 생성하나요?

터미널에서 python manage.py startapp [앱이름] 명령어를 입력하여 새로운 앱을 생성할 수 있습니다.

데이터베이스 연결은 어떻게 하나요?

settings.py의 DATABASES 항목을 수정하여 데이터베이스와 연결할 수 있습니다. 예를 들어, SQLite나 PostgreSQL을 사용할 수 있어요.

클라이언트와 서버 간 데이터 전송 방식에는 어떤 것들이 있나요?

주로 GET 방식과 POST 방식이 있으며, GET 방식은 URL에 쿼리 문자열로 데이터를 포함하고, POST 방식은 HTML 폼을 통해 전송됩니다.

Django를 처음 접한들 과정을 통해, 웹 프레임워크의 구조가 어떻게 이루어지는지를 조금이나마 체험할 수 있었어요. 여러분도 이러한 기본적인 구성과 개념을 이해하고 나면, 더 복잡한 기능을 구현하는 데 큰 도움이 될 거예요.

키워드: Django, 파이썬, 웹프레임워크, MVT구조, ORM, 데이터베이스, URL설정, 앱생성, POST방식, GET방식, 랜덤번호생성