Posted at

PythonのFlaskでAPI開発するときの参考記事まとめ


概要

PythonのFlaskを用いた開発する際によく参考にしている記事をまとめています。

自分用なので、自分記事が若干多めです。随時更新

この記事良かったよーとか、教えていただけると助かります。


環境構築

Python+Flask環境をDockerで構築する

https://qiita.com/kai_kou/items/e78b546b9820c7d8f1f9

DockerコンテナでFlaskを起動し, JSONデータのPOSTとGET

https://qiita.com/paperlefthand/items/82ab6df4a348f6070a55

PythonのFlaskでMySQLを利用したRESTfulなAPIをDocker環境で実装する

https://qiita.com/kai_kou/items/5d73de21818d1d582f00


ライブラリ

Flask

http://flask.pocoo.org/

[Python] 軽量WebフレームワークのFlaskに入門(準備、起動、HTML、静的ファイル、GET、POSTなど)

https://www.yoheim.net/blog.php?q=20160505


RESTful

Flask で Restful API を作る - jsonify で日本語が文字化けする時の解決方法

http://datalove.hatenadiary.jp/entry/flask-jsonify-how-to-encode-japanese

Flask-RESTful

https://flask-restful.readthedocs.io/en/latest/

Flask-RESTful - KZKY memo

http://kzky.hatenablog.com/entry/2015/11/02/Flask-Restful

Flask-RESTfulとFlask-SQLAlchemyを利用してリソースをネストしてJSONを返す方法

https://qiita.com/kai_kou/items/9dea3a08c1577a6dd952


設計・モック

API BlueprintとdrakovとdreddでAPIドキュメントを書きつつモックサーバを立ててさらにテストを走らせる

https://arata.hatenadiary.com/entry/2018/03/22/204723

api blueprintとaglioを利用してAPI仕様書を作成する

https://qiita.com/kai_kou/items/630f6c1e4e577518bd14

api blueprintとdrakovを利用してAPIモックサーバを立ち上げる

https://qiita.com/kai_kou/items/bdbb6c3f8d1ac655595d

Dockerとapi blueprint+aglio+drakovを使ってAPI開発を楽にする

https://qiita.com/kai_kou/items/feca8974f3967a285ff4

api blueprint関連記事まとめ

https://qiita.com/kai_kou/items/45c6f109b294fa00d310


DB・ORM

SQLAlchemyをMySQLで主キーをUUIDにするならSQLAlchemy-Utilsが便利

https://qiita.com/kai_kou/items/70d73af54c2550051607

SQLAlchemy-Utils

https://sqlalchemy-utils.readthedocs.io/en/latest/index.html

SQLAlchemy - The Database Toolkit for Python

https://www.sqlalchemy.org/

Python3 の 定番ORM 「 SQLAlchemy 」で MySQL ・ SQLite 等を操作 – 導入からサンプルコード

https://it-engineer-lab.com/archives/1183

Flask-SQLAlchemy

http://flask-sqlalchemy.pocoo.org/2.1/

Flask-SQLAlchemyの使い方

https://qiita.com/msrks/items/673c083ca91f000d3ed1

Flask-Migrate documentation

https://flask-migrate.readthedocs.io/en/latest/

Flask + SQLAlchemyプロジェクトを始める手順

https://qiita.com/shirakiya/items/0114d51e9c189658002e

Flask-Marshmallow

https://flask-marshmallow.readthedocs.io/en/latest/

SQLAlchemy x marshmallowでModelからJSONへの変換を楽に行う

https://techblog.recochoku.jp/3107

PyMySQL

https://github.com/PyMySQL/PyMySQL

SQLAlchemyでのupdate

http://motomizuki.github.io/blog/2015/05/20/sqlalchemy_update_20150520/


単体テスト

PythonのFlaskでMySQLを利用したRESTfulなAPIにpytestで単体テストを追加する

https://qiita.com/kai_kou/items/5d807136a741d8e75ad9

Flask-Testing Flask-Testing 0.3 documentation

https://flask-testing.readthedocs.io/en/latest/

Microservices with Docker, Flask, and React - Test Setup

https://testdriven.io/part-one-test-setup

Pythonのpytest-watchモジュールでテスト駆動開発が捗った

https://qiita.com/kai_kou/items/2a494289f6b28da3361a


デプロイ・GCP

PythonのFlaskアプリをGoogle App Engineにデプロイしてみた

https://qiita.com/kai_kou/items/775bcc058aaabbdff4e7

Google App Engine上のFlaskでレスポンスをNo Content(204)で返す方法を調べた

https://qiita.com/kai_kou/items/801ae9715b5b8f4736b8

Google App Engine上でFlaskを利用してNo Content(204)を返すとき、 Content-Length が0じゃないとエラーになる

https://qiita.com/kai_kou/items/a4204189b1b9d4b74dc9

Google Cloud FunctionsのPython(Beta)でHttpトリガーのときJSONを返す

https://qiita.com/kai_kou/items/622265c32aecfa2e7cc3