질문 목록 만들기
게시판 질문 목록 출력하기
[projects/myproject/pybo/views/main_views.py]
from flask import Blueprint, render_template
from pybo.models import Question
...
@bp.route('/')
def index():
question_list = Question.query.order_by(Question.create_date.desc())
return render_template('question/question_list.html', question_list=question_list)
question_list = Question.query.order_by(Question.create_date.desc())
질문 목록 데이터를 가져온다.
order_by는 조회 결과를 정렬한다.
위의 코드에서는 작성 일시 순으로 내림차순 정렬을 한다.
.desc()는 내림 차순을 의미한다
오름차순은 .asc()로 생략할 수 있다.
html 템플릿에 대해서는 별도로 정리하고 여기서는 따로 다루지 않는다.
질문 상세 기능 만들기
라우팅 함수
http://localhost:5000/detail/2/
이 URL은 "Question 모델 데이터 중 id 값이 2인 데이터를 조회하라"는 의미다.
[projects/myproject/pybo/views/main_views.py]
...
@bp.route('/detail/<int:question_id>/')
def detail(question_id):
question = Question.query.get(question_id)
return render_template('question/question_detail.html', question=question)
detail 함수의 매개 변수 question_id에는 URL 매핑 규칙에 사용한 <int:question_id>가 전달된다.
오류 페이지 표시
응답 코드 | 설명 |
200 | 성공 |
500 | 서버 오류 |
404 | 서버가 요청한 페이지 없음 |
...
@bp.route('/detail/<int:question_id>/')
def detail(question_id):
question = Question.query.get_or_404(question_id)
return render_template('question/question_detail.html', question=question)
위의 코드 중 question = Question.query.get(question_id)의 get 함수를 get_or_404로 바꾼다.
이전에는 http://localhost:5000/detail/30/ 처럼 없는 페이지를 요청했을 때 빈 페이지가 출력됐지만,
get_or_404 함수를 이용하면 404 페이지가 출력된다.
'Backend > Server' 카테고리의 다른 글
[Spring] MVC 모델 (0) | 2023.08.04 |
---|---|
[Spring] API 작성하기 (0) | 2023.08.02 |
[Flask] 데이터 처리하기 (DB) (2) (0) | 2023.07.31 |
[Flask] 데이터 처리하기 (DB) (1) (0) | 2023.07.27 |
[Flask] 블루프린트 (0) | 2023.07.27 |