Python(27)
-
[Flask] 3-10 게시물 수정 & 삭제
이번에는 작성한 게시물을 수정 & 삭제할 수 있는 기능을 추가할 것이다 진행하다 보면 "비슷한 기능을 반복해서 구현한다는 느낌"을 받아 조금 지루할 수 있다 게시물 수정 & 삭제 기능은 게시물 작성만큼 중요하다 수정 일시 질문, 답변을 언제 수정했는지 확인할 수 있도록 Question 모델과 Answer 모델에 modify_date 속성을 추가하자 modify_date 속성에는 nullable=True로 null을 허용하도록 했다 수정일시는 수정이 발생할 경우에만 생성되므로 null을 허용해야 한다 모델이 변경되었으므로 migrate, upgrade 명령을 수행하자 질문 수정 버튼 질문 상세 화면에 다음과 같이 질문 수정 버튼을 추가하자 질문 수정 버튼은 로그인한 사용자와 글쓴이가 같은 경우에만 보여야 ..
2023.12.03 -
[Flask] 3-9 글쓴이 표시하기
질문과 답변 등록시 글쓴이 정보를 저장하는 환경까지 만들어 보았다 게시판의 게시물에는 "글쓴이"를 표시하는 것이 일반적이다 질문 목록, 질문 상세 화면에 user 속성을 이용하여 글쓴이를 표시해 보자 질문 목록에 글쓴이 표시하기 글쓴이를 표시하기 위해 테이블에 글쓴이 항목을 추가하자 글쓴이를 추가했다 그리고 th 엘리먼트를 가운데 정렬하도록 tr 엘리먼트에 text-center 클래스를 추가하고 제목의 너비가 전체에서 50%를 차지하도록 style="width:50%"도 지정해 주었다 이어서 for 문에도 글쓴이를 적용하자 {{ question.user.username }}를 삽입하여 질문의 글쓴이를 표시했다 리고 테이블 내용을 가운데 정렬하도록 tr 엘리먼트에 text-center 클래스를 추가하고 제..
2023.12.03 -
[Flask] 3-7 로그인과 로그아웃
여러 사람이 사용하는 게시판 서비스를 만들 것 이기 떄문에 로그인, 로그아웃은 필수 기능이다 로그인과 로그아웃 기능을 만들어보자 로그인 폼 아래와 같이 로그인시 사용할 UserLoginForm을 만들자 username, password 필드를 추가하고 각각 필수 입력 항목으로 지정해 주었고 username의 길이는 3~25자로 제한했다 로그인 라우팅 함수 로그인을 수행할 라우팅 함수를 다음처럼 작성해 보자 /login/ URL과 매핑되는 login 함수를 생성했다 login 함수는 signup 함수와 비슷하게 동작한다 POST 방식에는 로그인을 수행하고 GET 요청에는 로그인 화면을 보여준다 POST 요청에 의해 로그인 하는 과정을 알아보자면 폼 입력으로 받은 username으로 데이터베이스에 해당 사용..
2023.12.02 -
[Flask] 3-6 회원가입
이번에는 회원가입 기능을 구현해 보자 회원가입 기능은 웹 사이트에서 핵심이다 회원 모델 지금까지는 질문, 답변 모델만 사용했다면 이제 회원 정보를 위한 모델이 필요하다 회원 정보 모델에는 최소한 아래와 같은 속성이 필요하다 속성 설명 username 사용자 이름(ID) password 비밀번호 email 이메일 pybo/models.py 파일을 열어 앞에서 정의한 속성을 바탕으로 User 모델을 작성하자 id는 자동으로 증가하는 User 모델의 기본 키이다 username, password, email에는 null값을 허용하지 않도록 nullable=False로 설정했다 username, email에는 unique=True를 지정했다 unique=True는 "같은 값을 저장할 수 없다"를 뜻한다 이렇게 ..
2023.12.02 -
[Flask] 3-5 질문에 달린 답변 개수 표시하기
질문 목록에서 "해당 질문에 달린 답변 개수"를 표시해 보자 코드의 양은 많지 않지만 "게시판 서비스를 더욱 서비스답게 만들어 주는 기능"이다 답변 개수는 아래처럼 게시물 제목 바로 오른쪽에 표시하자 {% if question.answer_set|length > 0 %}로 답변이 있는 경우를 검사하고 {{ question.answer_set|length }}로 답변 개수를 표시했다 이제 질문 목록 페이지로 이동하면 답변이 있는 질문은 제목 오른쪽에 빨간색 숫자가 표시될 것이다 정상적으로 동작 확인
2023.12.02 -
[Flask] 3-4 게시물에 일련번호 추가하기
게시물 번호 문제 계속해서 서비스를 개선해 보자 현재 질문 목록 화면을 유심히 보면 페이지마다 게시물 번호가 항상 1부터 시작되는 문제가 있다 페이지를 이동해 봐도 게시물 번호는 1부터 시작한다 두번째 페이지로 이동하더라도 여전히 게시물 번호가 1부터 시작된다 이 문제를 해결해 보자!! 게시물 번호 공식 만들기 만약 질문 게시물이 12개라면 1페이지에는 12번째~3번째 게시물이, 2페이지에는 2번째~1번째 게시물이 역순으로 표시되어야 한다 질문 게시물의 번호를 역순으로 정렬하려면 아래와 같은 공식을 적용해야 한다 항목 설명 번호 최종 표시될 게시물 번호 전체 게시물 개수 데이터베이스에 저장된 게시물 전체 개수 현재 페이지 페이징에서 현재 선택한 페이지 페이지당 게시물 개수 한 페이지당 보여줄 게시물의 개..
2023.12.02