반응형
1. 단순화
기존에 python의 기본 메서드 형태로 urlpatterns에 등록된 메서드를 만드는 방법도 있지만 해당 메서드보다 더 기능이 많은 class 기반의 Template 메서드를 정의 하는 방법을 정리해 보았습니다.
Template 단순화 하기
# 함수 형태 1
def index(request: HttpRequest) -> HttpResponse:
return render(request, "page/index.html")
# class 형태 - TemplateView
index = TemplateView.as_view(template_name="page/index.html")
# --------------------------------------------------------------------
# 함수 형태 2
def list(request: HttpRequest) -> HttpResponse:
qs = Post.objects.all()
return render(request, "page/list.html", {
"list": qs
})
# class 형태 - ListView
list = ListView.as_view(model=Post)
GET, POST의 경우
# 함수 형태의 view
def post(request):
if request.method = "POST":
form = ...
else:
form = ...
return render(request, "page/post.html", {
"form": form
})
# class 형태의 view
# UpdateView도 동일하게 사용 가능
post = CreateView.as_view(
model = Post,
form_class = PostForm,
)
2. QueryDict, MultiValueDict
query string으로 요청온 데이터에 대해서 중복된 key 값을 허용/불허 하는 설정 메서드 입니다.
class HttpRequest:
def __init__(self):
self.GET = QueryDict(mutable=True) # 중복 허용 X
self.POST = QueryDict(mutable=True) # 중복 허용 X
self.FILES = MultiValueDict() # 중복 허용 O
만약 test라는 key 값으로 여러개의 다른 value를 넘기고 싶다면 MultiValueDict 메서드로 적용하면 쉽게 처리가 가능합니다.
반응형
'Python > Django' 카테고리의 다른 글
[Django] Django에서 custom 명령어를 만들어 보자 (0) | 2022.08.09 |
---|---|
[Django] django-environ 사용 방법 (0) | 2022.08.09 |
[Django] Template 유용한 3가지 팁 모음 (0) | 2022.08.08 |
Django에서 Request 처리 실행 단계 정리 (0) | 2022.08.07 |
Django 프로젝트 생성하기 (Web 기준) (0) | 2022.01.26 |