본문 바로가기
Python/Machine Learning

Til - 28day

by K-밍키 2022. 5. 24.

profile.py

# page 파라미터 가져오기 없을경우 기본값 1 지정
page = request.args.get('page', type=int, default=1)
per_page = 8  # 한 페이지에 출력할 게시물 수

results = sorted(list(db.RESULT.find({'company': user_info['company']})), key=lambda x: x['date'], reverse=True)

# 페이지에 맞는 첫 게시물 번호, 마지막 게시물 번호
start_row = (page - 1) * per_page + 1
end_row = start_row + per_page - 1

# 정리 끝난 list의 페이지에 맞게 출력하기 ex) page=1 일경우 0~9까지 page=2일경우 10~19 되도록
results = results[start_row - 1:end_row]

# 페이징 숫자 ex) 이전 1 2 3 4 5 다음 >> 이 경우는 5
page_block = 1

# 보여줄 페이징 번호들중 가장 첫번째, 마지막 번호 지정 ex) page=2 여도 1 2 3 4 5 가 출력되도록
start_page = int((page - 1) / page_block * page_block + 1)
end_page = start_page + page_block - 1

count = len(list(db.RESULT.find({'company': user_info['company']})))
# 마지막 번호의 경우 게시물에 맞춰줘야한다 ex) 블록이 5여도 게시물이 모자라면 이전 1 2 3 다음 처럼 출력되도록
remained = 0
if count % per_page > 0:
    remained = 1
page_count = int(count / per_page) + remained  # 파이썬에서 자동형변환 안되어서 명시적 형변환 필수
if end_page > page_count:
    end_page = page_count

# 출력 시 필요한 데이터들 모아서 리턴
pagination = {
    'start_page': start_page,
    'end_page': end_page,
    'page_block': page_block,
    'page_count': page_count
}

return render_template('profile.html', user_info=user_info, results=results, p=pagination)

개발을 완료 후 CSS 마무리 수정 및 테스트를 진행하였다. 내일 발표준비를 마무리해보자.


마무리하고 장고수업을 들어야..

'Python > Machine Learning' 카테고리의 다른 글

Safety Manager Team 프로젝트(최종) KPT 회고  (0) 2022.05.25
Safety Manager Team 프로젝트(최종)  (0) 2022.05.25
Til - 27day  (0) 2022.05.23
Wil - 5week  (0) 2022.05.22
Til - 26day  (0) 2022.05.21