YUDA't

제목은 맘대로 지었다.

파이썬 Flask에서 MySQL을 연결하고 DB에 새 정보를 INSERT하는 방법을 알아본다.

파이썬과 Flask를 어느 정도 안다는 가정하에 쓴다.(설명이 좀 불친절한지라...나또한 초보자라 틀린 내용이 있을 수 있음)



1)

이 문서를 찾은 사람들에게 당연히 MySQL DB가 있다는 가정하에,

일단 Flask 패키지가 필요하다.(뭐 이것도 당연히 있겠다만....Flask는 python3 버전에서 다소 불안정하기 때문에 웬만하면 python2.7로 하는 게 좋다.)


pip이나

pip install Flask


PyPI에서 받고


둘 다 안 받아진다 싶으면 구글링을 해서 쉽게 해결할 수 있다.



2)

별로 중요하지 않은 템플릿은 아래 제타위키라는 곳에서 받았다. Bootstrap을 사용했는데 공식홈페이지도 있긴하지만 이 소스가 더 한글에 최적화돼 있는 듯 하다.

기타 소스들은 입맛따라 알아서. 

어차피 목표는 플라스크 웹으로 MySQL DB에 접근하는 것이니...



3)

일단 젤 먼저 웹앱을 실행시키는 app.py의 소스는 이렇다.


* 당연히 소스에서 MySQL에 접속하는 HOST나 USER 등은 본인 것으로 해야 한다.

* 버전에 따라 혹 없는 패키지가 있다면 구글링ㄱㄱ 대체재가 꽤 있다. 


제일 중요한 부분은 여기. MySQL과 연결하는 부분이다.

cnx = connection.MySQLConnection(user='your_user_name', password='your_password', 

  host='your_host', database='your_database')

어디에서 오류가 나는지 알기 힘들다면 일단 연결만이라도 가능한지부터 확인해보기를 바란다.



4)

아래는 웹에서 쓰일 html 소스다.


코드가 너무 지저분해서 많이 생략했다. 위에서 언급한대로 본인 입맛대로 꾸며보길!



중요한 점은, 

* <form action="/insert_result"> 을 잊지 말 것!

* <input> 텍스트에서 반드시 name 값을 줄 것!


여기다 값을 넣어보쟈



그리고 INSERT 버튼을 누르면 DB에 뿅하고 들어감

들어가는 데 성공하면 /insert_result 경로로 value1값을 시험으로 확인하게 해놨다.


templates 폴더에 insert_result.html 파일하나 만들고

<h1>{{value1}} inserted! </h1>

넣어주면 끝!


MySQL에 무사히 들어간 데이터!

ㅋㅋㅋㅋ들어갔는지도 불분명한 사진이지만...

회사 계정으로 연습해서 다른 부분을 넣을 수가 없다.




* 다시 말하지만 코드에서 생략한 부분이 많고 본인이 입력해야 하는 부분이 있어서 위 코드를 그대로 적용하면 안 된다.

* Flask는 서버 오류가 많이 나므로 로그를 꼭 찍어주도록 하자.