FlaskをCloud Runで動かす
Flaskのコードを実行時のみの課金、そして自動でスケールする環境へ楽にデプロイしたかったので、Cloud Runを使うことにした。 公式サイトにも手順はのっているのだけど、ローカルで動作確認をして、Dockerイメージをマルチステージビルドで作成し、アジアのデータセンター(asia.gc ...
Python3.7でtuple、namedtuple、list、dict、自作オブジェクトのforループ
ループさせる方法が型によって微妙に違うので、tuple、namedtuple、list、dict、自作オブジェクトのループの仕方をまとめた。 tuple tupleの値をループする そのままfor 変数 in タプルとすればループできる。 tpl = ('hoge', 'fuga', 'piyo') for t in tpl: ...
Python3.7でenumを定義し、文字列からEnumを生成する、Enumの値から文字列を取得する、一覧を取得する、振る舞いを持たせる
HTTPリクエストで送られてくる文字列の取りうる値が決まっている。そういう場合に、サーバー側で取りうる値が限定されていることを示すために、文字列からEnum(列挙型)に変換したい。 また、レスポンスはEnumから文字列にして値を返したい。 そこで、PythonにおいてEnumをどう扱えばいいか見ていく。 なお、確認したPythonのバージョンはPython ...
Cloud FirestoreからPython3.7でdocument一覧、subcollectionのdocument一覧を取得する
Cloud FirestoreをPython3.7からgoogle-cloud-firestoreを使ってデータを取得する。 以下のデータ構造から一覧を取得する方法をまとめる。 rooms [collection] name messages [subcollection] from ...
python-fireで作ったCLIアプリを1行ずつ確認しながらDocker上で動くようにする
PythonでCLIアプリケーションを作る。python-fireというライブラリを使うことで、関数やクラスのメソッドを簡単にコマンドラインで実行できるようになる。このPythonで作ったCLIアプリケーションをどの環境でも動かせるようにするべくDockerにのせていく。Dockerに ...
PythonでJSON文字列をdictに変換する
PythonでJSON文字列をdictに変換するには、Python 標準ライブラリのjson.loads(JSON文字列)を使う。 ヒアドキュメント('''で複数業の文字列を囲む)によりJSON文字列を宣言し、json.loads()でdictに変換する。 読み込んだものが文字列、数値に変換されていることを確認する。 json_test.py ...
Pythonからシェルを実行するsubprocessモジュールのcall、check_output、run、popenの違い
Pythonからシェルを実行したい。 subprocessモジュールからcall、check_output、run、Popenを実行することで出来るので、それぞれの違いを見ていく。 本記事はPython3.7.3で動かしている。 subprocessモジュールのまとめ | メソッド | 概要 | ----|---- | call ...
Python3のimportパターン13個
Pythonで意味のある単位にファイルを分割してWebアプリケーションを作成したい。 どうやら、Pythonにはあるファイルから他のファイルを読み込む際のパターンが複数あるようなので、まとめておく。 Pythonにexportはない Pythonにおいてあるファイルから他のファイルを読み込む場合、関数やオブジェクトを提供するファイルにexportの ...
Pythonのlambdaをsorted、map、filter、reduceを簡潔に書くために使う
Pythonのlambdaキーワードをサンプルコードでよく見かけるので、使い方をまとめておく。 どうやらlistやtupleのような反復可能なオブジェクトの各要素に対して、並べ変えたり、絞り込んだりするときに簡潔に書くためにつかわれるようだ。 Pythonのバージョンは3.7.3で試していく。 lambdaとは Pythonにお ...
Graphene + FlaskでGraphQLサーバを作り、QueryとMutationを試す
PythonでGraphQLサーバーを構築する。 GraphQLサーバの構築にはPythonのGraphQLライブラリであるGrapheneを使う。 [[toc]] GraphQLとは GraphQLは、RES ...