(Django 기초) CRUD, Class Based View

Posted by : at

Category : Django


현재코드의 문제

# views.py

# ...

def hello_world(request):
    if request.method == "POST":
        temp = request.POST.get('hello_world_input')

        # POST만 날아오면 아무나 DB에 접근하게 된다. -> 해결사항
        new_hello_world = HelloWorld()
        new_hello_world.text = temp
        new_hello_world.save()

        hello_world_list = HelloWorld.objects.all()
        return HttpResponseRedirect(reverse('acountapp:hello_world'))
    else:
        hello_world_list = HelloWorld.objects.all()
        return render(request, 'accountapp/hello_world.html', context={'hello_world_list': hello_world_list})

CRUD

  • CRUD : C reate / R ead / U pdate / D elete -> 이 네가지가 쉽게 구현할 수 있는게 장고의 특징이다.
    • 쉬운 이유는 CRUD의 각각의 View(class)를 제공해주기 때문이다.
    • CBV(Class Based View)를 제공해 준다고 한다

대략 CBV의 구조는 아래와 같다

class AccountCreateView(genetric.CreateView):
    model = User
    form_class = AccountCreateFrom
    success_url = reverse_lazy('app:list')
    template_name = 'accountapp/accountapp_create.html'

뭔소린지 모르겠지만 일단. django는 CRUD이 쉽다는 장점과 그 장잠은 CBV에서 온다고 그냥 받아들이자.


About Taehyung Kim

안녕하세요? 8년차 현업 C++ 개발자 김태형이라고 합니다. 😁 C/C++을 사랑하며 다양한 사람과의 협업을 즐깁니다. ☕ 꾸준한 자기개발을 미덕이라 생각하며 노력중이며, 제가 얻은 지식을 홈페이지에 정리 중입니다. 좀 더 상세한 제 이력서 혹은 Private 프로젝트 접근 권한을 원하신다면 메일주세요. 😎

Star
Useful Links