[개발] 파이썬

8.2.1. Django 기본 설정

브랜든정 2024. 12. 30. 10:41
반응형

파이썬 Django 기본 설정: 쉽게 시작하는 방법

파이썬 Django는 웹 개발을 위한 강력한 프레임워크로, 많은 개발자들이 이를 사용하여 다양한 프로젝트를 성공적으로 완료하고 있습니다. 이 글에서는 파이썬 Django를 기본적으로 설정하고 시작하는 방법에 대해 자세히 설명하겠습니다. Django를 사용하여 웹 애플리케이션을 개발하는 것은 비교적 쉽고, Django의 강력한 기능과 커뮤니티 지원 덕분에 많은 개발자들이 이를 선호합니다.

1. 파이썬 Django 설치

Django를 설치하기 위해서는 먼저 파이썬이 설치되어 있어야 합니다. 파이썬을 설치하지 않았다면, 공식 웹사이트에서 파이썬을 다운로드하고 설치할 수 있습니다. 파이썬이 설치된 후, Django를 설치하는 방법은 다음과 같습니다.

pip install Django

이 명령어를 실행하면 Django가 시스템에 설치됩니다.

2. Django 프로젝트 생성

Django 프로젝트를 생성하는 방법은 다음과 같습니다.

django-admin startproject myproject

이 명령어를 실행하면 myproject라는 이름의 새로운 Django 프로젝트가 생성됩니다. 프로젝트 디렉토리로 이동하여 settings.py 파일을 열어보면, 프로젝트의 기본 설정이 포함되어 있습니다.

3. Django 앱 생성

Django 앱을 생성하는 방법은 다음과 같습니다.

cd myproject
python manage.py startapp myapp

이 명령어를 실행하면 myapp라는 이름의 새로운 Django 앱이 생성됩니다. 앱 디렉토리로 이동하여 models.py 파일을 열어보면, 앱의 모델을 정의할 수 있습니다.

4. URL 라우팅 구성

URL 라우팅은 Django 앱이 요청을 처리하는 방법을 결정하는 중요한 부분입니다. urls.py 파일을 열어보면, 프로젝트와 앱의 URL 패턴이 정의되어 있습니다. 예를 들어, myproject/urls.py 파일을 다음과 같이 수정할 수 있습니다.

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('myapp.urls')),
]

myapp/urls.py 파일을 다음과 같이 수정할 수 있습니다.

from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

5. 뷰 작성하기

뷰는 Django 앱이 요청을 처리하는 방법을 결정하는 중요한 부분입니다. 예를 들어, myapp/views.py 파일을 다음과 같이 수정할 수 있습니다.

from django.shortcuts import render

def index(request):
    return render(request, 'index.html')

index.html 파일을 다음과 같이 수정할 수 있습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My App</title>
</head>
<body>
    <h1>Welcome to My App</h1>
</body>
</html>

6. 모델 정의하기

모델은 Django 앱이 데이터베이스와 상호작용하는 방법을 결정하는 중요한 부분입니다. 예를 들어, myapp/models.py 파일을 다음과 같이 수정할 수 있습니다.

from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=200)
    author = models.CharField(max_length=100)
    publication_date = models.DateField()

7. 마이그레이션 생성하기

마이그레이션은 Django 앱이 데이터베이스에 테이블을 생성하는 방법을 결정하는 중요한 부분입니다. 다음 명령어를 실행하여 마이그레이션을 생성할 수 있습니다.

python manage.py makemigrations
python manage.py migrate

8. 폼 처리하기

폼은 사용자가 입력한 데이터를 유효성 검사를 통해 처리하는 방법을 결정하는 중요한 부분입니다. 예를 들어, myapp/forms.py 파일을 다음과 같이 수정할 수 있습니다.

from django import forms

class RenewBookForm(forms.Form):
    renewal_date = forms.DateField(widget=forms.DateInput(attrs={'type': 'date'}))

views.py 파일을 다음과 같이 수정할 수 있습니다.

from django.shortcuts import render, redirect
from .forms import RenewBookForm

def renew_book_librarian(request, pk):
    book_instance = get_object_or_404(Book, pk=pk)

    if request.method == 'POST':
        form = RenewBookForm(request.POST)

        if form.is_valid():
            book_instance.due_back = form.cleaned_data['renewal_date']
            book_instance.save()
            return redirect('myapp:index')
    else:
        initial = {'renewal_date': book_instance.due_back}
        form = RenewBookForm(initial=initial)

    return render(request, 'renew_book.html', {'form': form, 'book': book_instance})

renew_book.html 파일을 다음과 같이 수정할 수 있습니다.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Renew Book</title>
</head>
<body>
    <h1>Renew Book</h1>
    <form method="post">
        {% csrf_token %}
        {{ form.as_p }}
        <button type="submit">Submit</button>
    </form>
</body>
</html>

9. 서버를 시작하기

서버를 시작하기 위해서는 다음 명령어를 실행할 수 있습니다.

python manage.py runserver

이 명령어를 실행하면 Django 서버가 시작되고, http://127.0.0.1:8000/에서 앱을 확인할 수 있습니다.

결론

파이썬 Django를 기본적으로 설정하고 시작하는 방법을 설명한 이 글을 통해, Django를 사용하여 웹 애플리케이션을 개발하는 방법을 이해할 수 있습니다. Django의 강력한 기능과 커뮤니티 지원 덕분에, 많은 개발자들이 이를 선호합니다. 이 글을 통해, Django를 사용하여 웹 애플리케이션을 개발하는 방법을 쉽게 이해할 수 있습니다.

반응형

'[개발] 파이썬' 카테고리의 다른 글

8.2.3. Django 뷰와 템플릿  (0) 2024.12.30
8.2.2. Django 모델과 데이터베이스  (0) 2024.12.30
8.1. Flask  (0) 2024.12.30
7.3. Matplotlib  (2) 2024.12.30
7.2. Pandas  (0) 2024.12.30