파이썬 Django 2탄 SQLite로 CRUD 구현

김동혁·2023년 7월 3일

  1. sample_app/models.py 파일에서 데이터 모델 정의하기:
from django.db import models

class Sample(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
  1. 이렇게 모델을 정의한 후에는 migration 파일을 생성하고 데이터베이스에 적용해야 합니다.
python manage.py makemigrations sample_app
python manage.py migrate
  1. sample_app/views.py 파일에서 CRUD 함수를 생성합니다:
from django.shortcuts import render, redirect
from .models import Sample

def create(request):
    if request.method == "POST":
        title = request.POST['title']
        content = request.POST['content']
        sample = Sample(title=title, content=content)
        sample.save()
        return redirect('/read')
    else:
        return render(request, 'create.html')

def read(request):
    samples = Sample.objects.all()
    return render(request, 'read.html', {'samples': samples})

def update(request, id):
    sample = Sample.objects.get(id=id)
    if request.method == "POST":
        sample.title = request.POST['title']
        sample.content = request.POST['content']
        sample.save()
        return redirect('/read')
    else:
        return render(request, 'update.html', {'sample': sample})

def delete(request, id):
    sample = Sample.objects.get(id=id)
    sample.delete()
    return redirect('/read')
  1. 이제 각 함수에 URL을 연결해주기 위해 sample_app/urls.py 파일을 생성하고 아래와 같이 작성합니다:
from django.urls import path
from . import views

urlpatterns = [
    path('create/', views.create, name='create'),
    path('read/', views.read, name='read'),
    path('update/<int:id>', views.update, name='update'),
    path('delete/<int:id>', views.delete, name='delete'),
]
  1. sample_project/urls.py 파일에 sample_app/urls.py를 포함시킵니다:
from django.contrib import admin
from django.urls import include, path

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

이렇게 하면 간단한 Django CRUD 애플리케이션을 생성할 수 있습니다. 다만, 실제로 애플리케이션을 작동시키려면 각 View에서 사용된 HTML 템플릿 파일(create.html, read.html, update.html)들을 sample_app/templates 폴더 안에 생성하고 적절하게 작성해주셔야 합니다.

profile
🐱 도쿄에서 활동 중인 웹 개발자 🇯🇵💻 🧑‍💻 최근에는 요즘IT에서 작가로도 활동 중입니다! 📝 요즘IT 글 모음: https://yozm.wishket.com/magazine/@donghyuk65/

0개의 댓글