この前はFlaskで簡単なREST APIを作ってみました。
今回は、少しだけ頑張ってFlaskエンドポイント経由でDBへ接続できるようにしてみます。
環境構築
前回は環境構築をさぼってしまったので、今回はちゃんとDockerでやります。
イメージはこんな感じです。
前回同様REST APIサーバーをFlaskで構築し、MySQLのデータを加工してお繰り返したいと思います。
Flask
こんな感じですかね?
FROM ubuntu:18.04 RUN apt-get update RUN apt-get install -y git RUN apt-get install -y python3 RUN apt-get install -y python3-pip RUN apt-get install -y emacs RUN pip3 install flask RUN pip3 install --upgrade flask ENV APP_PATH=/home WORKDIR $APP_PATH ENV HOME $APP_PATH CMD [ "/bin/sh" ]
MySQL
基本的にこちらを参考にさせていただきました。
まずフォルダ構成はこんな感じ。
MySQL/ ├── docker-compose.yml └── mysql ├── Dockerfile ├── conf.d │ └── my.cnf └── initdb.d ├── schema.sql └── testdata.sql
Dockerfileはこんな感じ。
FROM mysql:latest
あとは上の記事通りにやったら動作は確認できました。
MySQLへの接続
具体的なFlaskの中身になります。
前回に習って、こんな感じになりました。 とりあえずつながればいいので、select_allだけ作ってみました。
やってみた
実際にやってみるとこんな感じです。
起動
FLASK_APP=server.py flask run
アクセスするとこんな感じ。
~ $curl 127.0.0.1:5000/ {"results":[{"index":1,"mail":"xxxx@mail.co.jp","name":"TOM"}]}
ちゃんとMySQLの中身が確認できました。
感想
環境構築とかに意外と時間かかってしまいましたが、普通に動いてよかったです。