Web + APP/Django 썸네일형 리스트형 Get, Post 요청을 모두 알아서 처리하는 FormView ! 안녕하세요 ! 오늘은 Django Class Based View의 FormView에 대해서 알아보려고 합니다. 바로 시작하죠 ! 제가 Login Form을 제작을 하면서 get요청(Login 창 들어올 때) 따로, post 요청(Login 시도)을 따로 처리를 했었더랬죠. 그게 당연한 줄 알았지만, 이 놈의 대단한 장고는 이를 알아서 처리해주는 FormView라는 친구가 있습니다 ! 자세히 알아보죠. 우선 코드를 작성해봅시다. views.py from django.views.generic import FormView from django.contrib.auth import authenticate from .forms import LoginForm class LoginView(FormView): templ.. 더보기 Class Based View Django는 abstract(추상화)을 위한 많은 것을 가지고 있습니다. 예를 들어서 models.py는 Database 위에서 abstract를 하죠. Class Based View도 마찬가집니다. 같은 행동을 두 번 이상 안하려고 똑똑한 개발자들은 이를 추상화 모델로 만들어놓았죠. 당연히 Class Based View를 쓰려면 class를 선언해야합니다. from django.views.generic import ListView class HomeView(ListView): pass Django에는 Listview라고 있습니다. 이 Listview는 Class Based View라고 불리는 가족으로부터 탄생했죠. ListView는 페이지가 objects의 목록을 대변한다고 나와있습니다. 즉, obj.. 더보기 Managers와 QuerySets의 이해 Django에서는 DB를 SQL 문으로 직접 조작하지 않습니다. Django ORM(Object Relational Mapping)을 사용하죠. (물론 하는 경우도 있습니다. 제가 지금 하는 업무에서는 ORM으로 하기 보다는 SQL Developer로 직접 조작을 하죠, 하지만 이 경우에도 사용자 딴에서 Data를 보여줄 땐 Django ORM이 필수적으로 사용된답니다) 예를 들어서 obj.amenities.count() / obj.amenities.all() 이런 것들이 Django ORM Query가 되겠죠. 콘솔로 들어가서 확인을 해볼까요? User라는 클래스를 만들었다고 가정합시다. from django.contrib.auth.models import AbstractUser from django... 더보기 추상 모델 본 글은 https://docs.djangoproject.com/en/3.0/topics/db/models/을 참고한 글입니다. Abstarct Base classes, 추상 모델은 다른 많은 모델에 공통적인 정보를 넣고 싶을 때, 사용하면 굉장히 좋습니다. 그냥 class에서 abstract = True를 하면 바로 추상 모델로 변신이 가능합니다. 추상 모델의 경우 DB Table에 영향을 주지 않습니다. 대신 다른 모델을 위해 base class로 사용이 됩니다. from django.db import models class CommonInfo(models.Model): name = models.CharField(max_length=100) age = models.PositiveIntegerField.. 더보기 커스텀 유저 모델 본 글은 https://docs.djangoproject.com/en/3.0/topics/auth/customizing/에서 번역한 글입니다. 다른 블로그들 번역이 너무 답답해서 제가 직접 올립니다. (왤케 빠진게 많고, 입 맛대로 올려요..) 근데 저도 설명 못하는게 함정 ㅋ Django에서 워낙 좋은 Built-in User model 있다고 해도, 그게 모든 프로젝트에 적합하진 않습니다. 예를들어 Username 대신 이메일 주소로 identification token(로그인 토큰)을 대신하고 싶을 때가 있겠죠. 그래서 Django는 User model Override를 가능하게 만들어 놨습니다 ! *Override : 상속받은 Class의 메소드, 인자를 재정의하는 것, 즉 자기 입 맛대로 지지고.. 더보기 Django Setting 하기 ! Django Setting Python Python의 경우 3.8.1 버전을 사용했으며, Window 환경이기에 Python 공식홈페이지에서 설치를 진행했습니다. https://www.python.org/ Welcome to Python.org The official home of the Python Programming Language www.python.org Pipenv를 이용한 가상환경 만들기 저희는 프로젝트를 진행하기 앞서 가상환경을 만들어서 Django 세팅을 할 겁니다 ! 만약, 본인의 컴퓨터에서 하나의 프로젝트만 진행한다고 했을 땐, 그냥 전역(global)하게 세팅을 해도 되겠지만, 저희는 컴퓨터가 한 대 뿐이니.. ㅠㅠ 안에서 가상환경을 만들어서 해봅시다. # pipenv 설치 pip는.. 더보기 이전 1 다음