-
Django - FBV vs CBV공부/Django 2022. 7. 21. 19:51
장고를 공부하면서 머리에 혼선이 오는것들을 정리할 필요가 있다고 생각한다.
오늘은 함수형 뷰와 클래스형 뷰를 이야기해보려고 한다.
FBV(Function Based View) - 함수형 뷰
View 구현의 기본 으로 FBV로 구현 할 줄 알아야 응용이 가능하다.
@api_view(['GET']) def my_view(request): return Response({"message":"Hello World!"})CBV(Class Based View) - 클래스형 뷰
공통 기능들은 부모클래스에 만들어서 상속을 통해서 적용을 할 수있다.
View 함수를 만들어주는 클래스
as_view() 클래스 함수를 통해, View 함수를 생성하고 상속을 통해, 여러 기능들을 혼합 할수있다.
class MyView(APIView) def get(self, request): return Response({"message":"Hello World!"})view 사용시 get_object_or_404
view.py에서 get_object_or_404를 사용하는 경우와 안하는 경우도 있다.
# try 와 except로 처리하는 방식 def post_detail(request: HttpRequest, pk: int)-> HttpResponse: try: post = Post.objects.get(pk=pk) except Post.DoesNotExist: raise Http404 return render(request, 'instagram/post_detail.html',{ 'post':post, })#get_object_or_404를 사용하지 않는 경우 def post_detail(request: HttpRequest, pk: int)-> HttpResponse: post = get_object_or_404(Post, pk=pk) return render(request, 'instagram/post_detail.html',{ 'post':post, })인터넷을 검색하며 찾아보고 위키와 블로그를 읽어보며 작성한글입니다. 혹시라도 부정확한 정보를 전달드릴수 있습니다. 틀린부분이 있으면 댓글을 남겨주세요.
'공부 > Django' 카테고리의 다른 글
Django - CloudWatch : 장고 로깅을 CloudWatch에 입력하기 (0) 2023.04.05 Django - S3 - nginx - 이미지업로드, 정적파일 (0) 2023.03.07 Nginx static 에서 root와 alias 의 차이 (0) 2023.03.04 Django - Nginx - Gunocorn - postgresql with Docker (0) 2023.03.04 Debug = False 시 static 파일을 읽지 못하는 경우 (0) 2023.03.01