python で簡単に WEB アプリを作るには
2019/11/25 - moriya - ~2 Minutes
他の WEB サイトと連携する WEB アプリを開発しているのだが、連携テストをする必要があった。
単体のリクエストでなく、WEB サイトに何度か GET/POST するようなシーケンスであり、cgi ではやりづらい。
python には、wsgiref などといったモジュールがあるが、まあまあ面倒だし、プロダクションレベルで使えるものではなさそうだ。apache や nginx といった WEB サーバなしで単体で WEB サーバとして動くようなモジュールが無いのかなあ、と思い検索してみた。
探してみると responder というフレームワークがあった。
これは私のニーズにマッチしていた。
- uvicorn という WEB サーバが内蔵されていて、コードを実行すれば WEB サーバとして起動する
- Flask-style route expression – URL の指定が簡単
- フォーム値や、POST データの取得や、レスポンスの作成が簡単
- テンプレートが使える
WEB アプリを作ったことがある人なら、 Quick Start を見れば、一瞬でファンになることだろう。
DB アクセスに関してはORM は無いので必要なら何かモジュールを使うことになるだろう。今回は、簡単なテスト用アプリだったので、pymysql で十分だった。
他にも、既存の WSGI / ASGI アプリがマウントできるなど、試してみたい機能もある。
python で本格的な WEB アプリケーションを開発するなら、django のような Web Application Framework のほうがよいと思うが、軽量な WEB サーバや、バックエンドサーバなどを構築するのであれば、responder は非常に使い勝手が良い印象だ。
改造しようとしていたコードは多少はテストに役に立った python コードではあった。標準ライブラリには、wsgiref という、いまいち単体では使いづらいリファレンス実装しかなく、かといって、django といった機能が盛り沢山のフレームワークを使うほどでもない。python にこだわる必要もないよなあ、捨てて他のもので書き直すべきなのかなあ、と思ったが、そこまでする時間もなかったので、非常に助かった。
ありがとう、作者さん!