def get_board_set_from_board_group(request, board_group_id):
...완료!!!
def home(request):
...완료!!!
def board(request, board_url):
...이번장!!!
def post_detail(request, board_url, pk):
...
def reply_write(request, board_url, pk):
...
def rereply_write(request, board_url, pk):
...
def reply_delete(request, board_url, pk):
...
def rereply_delete(request, board_url, pk):
...
def like(request, board_url, pk):
...
[ get_board_set_from_board_group 함수 리팩토링 ]
get_board_set_from_board_group 리팩토링 정보 보기
[ home 함수 리팩토링 ]
home 페이지 성능 개선 Board View 코드 리팩토링
home 페이지 좋아요, 댓글 수 Board View 코드 리팩토링
Board 앱의 View 함수들을 살펴보니 총 9개의 코드가 존재합니다.
하나하나씩 불필요한 코드를 제거하거나 리팩토링해 보겠습니다
모든 코드를 작성하고 리펙토링을 했습니다.
부족한 부분도 있지만 우선 이 정도 리펙토링을 하고, 불필요한 코드 제거 작업을 하도록 하려고 합니다.
from django.urls import path
from .views import *
app_name = 'board'
urlpatterns = [
...
# path('<str:board_url>', board, name='board'), <-- 이거 제거
]
아래 코드도 전부 제거 합니다.
# 게시글 목록 (게시판)
def board(request, board_url):
q = Q()
board_obj = None
tag_board = None
# page:
# 1 게시판 페이지
# 2 태그 페이지
# 3 검색 페이지
page = 1
search = request.GET.get('search')
# 태그 페이지
if board_url[0] == '_':
page = 2
tag_option = board_url[1:]
# 검색 페이지
if board_url == 'search':
page = 3
if search:
tag_id_list = Tag.objects.filter(
tag_name__icontains=search
).values_list(
'id', flat=True
)
q = q & Q(title__icontains=search) | Q(body__icontains=search) | Q(tag_set__in=tag_id_list)
# 게시판 선택
if page == 1:
board_obj = get_object_or_404(Board, url=board_url)
posts = board_obj.post_set.filter(q).order_by(
'-created_at'
)
# 태그 검색
elif page == 2:
tag_board = get_object_or_404(Tag, tag_name=tag_option)
posts = tag_board.post_set.filter(q).order_by(
'-created_at'
)
# 전체 검색
elif page == 3:
posts = Post.objects.active().filter(q).order_by(
'-created_at'
)
paging_obj = web_paging(
posts,
int(request.GET.get('page', 1)),
10,
5,
)
context = {
'posts': paging_obj.get('page_posts'),
'page_range': paging_obj.get('page_range'),
'board': board_obj,
'tag_board': tag_board,
}
return render(request, 'board/board.html', context)
cwbeany/board/templates/board/board.html
HTML 도 제거 합니다.
이렇게 해서 길고도 긴 board
View 함수 리펙토링이 끝났습니다!!!
[ 총 정리 링크 ]
board 함수 리팩토링 게시판 View 불필요 코드 제거 (현재 주소)