앞의 포스트에서 Flask_Migrate를 이용하여 ORM을 구현하고 MariaDB에 저장되어 있는 테이블에서 글의 목록을 조회하는 파이썬 코드를 작성하였다. 그리고 조회한 글의 목록을 보여주는 post_list.html 이라는 HTML 페이지를 작성하고 render_template() 함수를 이용해 출력하였다.
이제 글을 작성할 수 있는 간단한 FORM을 작성하고 Flask_Migrate에 포함되어 있는 SQLAlchemy의 ORM 연동기능을 통해 DB에 저장하는 코드를 기존의 소스코드에 추가해본다. DB연동은 이전에 작성한 포스트를 참고하기 바란다.
먼저 다음과 같이 글의 목록을 보여주는 post_list.html 파일의 아래에 글쓰기 페이지를 호출하는 태그를 추가한다.

12번 라인에 post_write를 호출하는 라인을 추가했다.
그리고 post_write가 호출되었을 때 렌더링하여 보여줄 post_write.html 파일을 다음과 같이 작성하여 template/views/ 디렉토리에 저장한다.

이 소스코드는 그냥 HTML 소스다. 별다를게 없다.
다만 이 post_write.html 파일을 서버모듈인 main_page.py에서 post_write로 라우팅해줘야 한다.

MariaDB는 원래가 Auto Commit이다. 하지만 Flask-Migrate에 포함되어 ORM을 구현해주는 SQLAlchemy가 제공하는 메소드들(add())를 사용하여 DB에 데이터를 저장할 땐 일단 Session에 저장하고 commit() 메소드를 호출해야 실제로 DB에 저장된다는 것을 기억하자.
위의 코드가 모두 정상적으로 작성되었다면 다음과 같이 post_write 페이지를 볼 수 있다.

제출 버튼을 누르게 되면 다음과 같이 제목과 내용이 저장되고 난 뒤 목록 페이지로 이동(redirect())하게 된다.

다음엔 이 두 화면을 예쁘게 꾸미는 CSS를 적용해보자.
#flask_migrate #sqlalchemy