Flask를 활용한 건의 및 투표 게시판 미니프로젝트
프로젝트 참여 인원
강지원, 김택관, 고건영, 이주환
- 강지원 : 투표 계시판 서버 및 관리자 페이지 CRUD 기능 구현
- 고건영 : Flask 메인 서버 및 최종 기능 취합과 구현
- 김택관 : 웹 템플릿 및 투표 게시판 데이터베이스 설계 및 구축
- 이주환 : 건의 게시판 기능 구현 및 게시판 데이터베이스 설계
프로젝트 계기
프로젝트에 참여한 인원은 모두 교육을 받고 있는 학생으로, 다양한 상황에서 교육생들의 의견을 통합 하여 투표 시스템을 만들고자 시작 하였다.
목차
1. 메인 페이지
2. 게시판 페이지
2-1. 게시판 글 작성
2-2. 게시판 초기화
3. 관리자
3-1. 투표 생성
4. 사용자 투표 입력
4-1. 투표 선택
5. 투표 결과
5-1. 최종 결과 확인
프로젝트 과정
게시판 이용 프로세스
- 메인 페이지 접속
- 건의 사항 작성
- 관리자에 의한 투표 생성
- 지정 된 인원에 한 하여 투표 시행
- 결과 확인
프로젝트에서 사용 된 설치용 라이브러리
1. flask
2. sqlite3
3. pandas
1. 메인 게시판
2. 게시판 페이지
- 템플릿 : 부트스트랩
- 데이터베이스 : MySQL
게시판을 제작 하면서 데이터베이스에 담겨진 고유 키 값을 게시글 번호로 사용 한 것이 아쉬웠다. 이미 설계가 끝나고 난 후 고유 키 번호를 사용자에게 보여주는 것도 좋지 않지만 실제 데이터가 변할 수 있는 환경에 놓여 있었다는 것이 가장 큰 문제가 되었다. 다음도 이와 비슷한 프로젝트를 진행 하게 된다면 게시글 번호와 고유 키 값을 분리 해서 진행 할 것 같다.
2-1. 게시판 페이지
POST로 값을 서버에 있는 함수를 호출하여 값을 불러오고 저장 하였다. 게시글을 작성 후 메인 게시판에 다시 모든 데이터를 출력 하게 만들었다.
3-1. 관리자 메인 페이지
투표 추가 하러가기를 누르면 관리자가 추가 할 수 있는 투표 주제와 투표 항목을 입력 받을 수 있는 페이지를 구현했다. 투표 결과 하러가기를 누르면 투표 주제별 투표 결과를 확인 하는 페이지를 구현했다.
3-2. 투표 항목 생성
- json형태 변환 및 전송: HTML, Javascript
- 데이터 공유: Flask
- 데이터베이스 : SQLite3
투표 주제와 투표 항목을 입력하고 버튼을 누르면 입력받은 데이터를 json형태로 변환하고 post방식으로 서버에 전달 한 뒤 데이터베이스에 저장했다.
3-3. 투표 생성 완료
4-1. 사용자 투표 입력
- 입력 데이터 전송: HTML
- 데이터 공유: Flask
- 데이터베이스 : SQLite3
미리 데이터베이스에 저장된 userid에 맞는 이름을 입력해야 제출이 유효하며 데이터베이스에 없는 값은 다시 입력 하게 구현하였다.
4-2. 개설 된 투표 항목 선택
관리자가 생성한 투표 주제를 데이터베이스에서 불러와 나타낸다.
4-3. 제시된 답변 선택
관리자가 생성한 투표 항목을 데이터베이스에서 불러와 나타낸다.
5-1. 관리자 최종 투표 결과 선택
- 입력 데이터 전송: HTML
- 데이터 공유: Flask
- 데이터베이스 : SQLite3
관리자가 생성한 투표 주제를 보여준다.