
【第0回】Responderを使ってDjangoチュートリアルをやってみた【初期セットアップ編】
2021.12.20
Responder(レスポンダー)とは?
PythonでWebアプリケーションを作成するときは、Django(ジャンゴ)というフレームワークが有名です。
しかし、今回は、Responder(レスポンダー)というWebアプリケーション用フレームワークをご紹介しようと思います。
Responderは、いま注目の勢いのあるフレームワークです。
Responderの特徴
特徴として、以下の点などがよく挙げられます。
- 非同期処理が簡単に記述できる
- GraphQL APIが簡単に書ける
Djangoは、日本語のチュートリアルも充実しており、多くのプログラマーたちが情報をネットに上げているのですが、「Responderの情報はなかなかネット上にない」というのが現状です。
【第0回】Responderを使ってDjangoチュートリアルをやってみた!
そこで!
本記事から連載が始まる「Responderを使ってDjangoチュートリアルをやってみた」では、その名の通り、「充実しているDjangoのチュートリアルをResponderでやってみる」という記事になっています。
Responderを触ろうとして諦めた方、Responderを初めて知った方などなど、一緒にResponderを学んでいければと思っています。
【Djangoのチュートリアル】
https://docs.djangoproject.com/ja/2.2/intro/tutorial01/
第0回目スタート!
さて、第0回目の今回は、割とつまずきやすい「環境構築」と「動作確認」から進めていくとこにしましょう!
こちらの記事もオススメ!
初期セットアップ
まずResponderでは、Pythonのバージョンが3.6以上である必要があります。
もし、バージョンが3.6未満であれば、Pythonのバージョンアップから始めてください。
なお、本記事の筆者は、「MacOS 10.14.5」と「 Python 3.7.3」で実装および動作確認をしています。
OSやPythonのバージョンによって動作が多少異なる場合があるかもしれませんので、その点はご了承ください。
Responderのインストール
Pythonのバージョンをクリアした方は、早速、Responderのインストールを行なっていきましょう!
pipでパッケージ管理をしている人は、
1 | pip install responder |
でインストールが可能です。
この際、パーミッションのエラー等でインストールできなかった方は、コマンドの後ろに --user をつけて再度実行してみてください。
これで、Responderのインストールは完了です!
実際に動かしてみる: View
まずは、本記事用に適当な場所に「responder」という名のディレクトリを作っておきましょう。
そのディレクトリの中に、 test.py を作成します。
そうしたら、以下のコードを書いて実行してみましょう。
1 2 3 4 5 6 7 8 9 10 | import responder api = responder.API() @api.route('/') def hello_world(req, resp): resp.text = 'hello, world!' if __name__ == '__main__': api.run() |
そうすると以下のように表示されます。
1 2 3 | INFO: Started server process [6440] INFO: Waiting for application startup. INFO: Uvicorn running on http://127.0.0.1:5042 (Press CTRL+C to quit) |
早速、http://127.0.0.1:5042にアクセスしてみると「hello, world」と表示されるかと思います。
これだけでローカルサーバが立ち上がりました!
とても簡単ですね!
これが最も単純なResponderのView操作です。
簡単なコード解説
Responderでは、Webサーバの構築は最初の2行、サーバの立ち上げはmain関数内のたった1行の命令で行えます。
それが以下のコードです。
1 2 3 4 5 6 7 | import responder api = responder.API() # -- 省略 -- if __name__ == '__main__': api.run() |
そして、実際に立ち上がったサーバのルートにアクセスすると、 @api.route('/') で定義された関数に飛ばされます。
今回は、 'hello, world' というテキストをレスポンスするという関数だったので、先ほどのような結果になりました。
したがって、もし以下のような関数を追加すれば、
1 2 3 | @api.route('/responder') def hello_responder(req, resp): resp.text = 'hello, responder!' |
http://127.0.0.1:5042/responder で「hello, responder!」と表示されるはずです。
ここまでで、なんとなくResponderの基本構造は掴めてきたのではないでしょうか?
ResponderのViewテンプレート
あとは、Responderの基本的な機能を紹介して、第0回は終わりにしたいと思います。
まずは、先ほどのコードを以下のように修正します。
1 2 3 4 5 6 7 8 9 10 11 12 13 | import responder api = responder.API() @api.route('/{word}') class Hello: def on_get(self, req, resp, word): resp.content = api.template("index.html", word=word) if __name__ == '__main__': api.run() |
その次に、 templetes というサブディレクトリに index.html を作成し、以下のコードを書いて保存してみてください。
1 2 3 4 5 6 7 8 9 10 11 | <!-- templates/index.html --> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Sample Application!</title> </head> <body> Hello, {{word}} </body> </html> |
これでもう一度、 test.py を実行してみます。
すると、http://127.0.0.1:5042/hogehoge や http://127.0.0.1:5042/resp など、与えられたURLによって表示が動的に変化する様子が確認できるかと思います。
第1回へつづく!
今回は、Responderの「初期セットアップ」と「基本機能」を簡単に説明しました。
他にも機能は様々あるようですが、その他のResponder機能は、Djangoチュートリアルを通して解説していきます。
次回からは、本格的に「DjangoチュートリアルをResponderで行なっていきます」ので、お楽しみに!
【第1回】の記事はこちら
【全まとめ編】Responderを使ってDjangoチュートリアルをやってみた
こちらの記事もオススメ!
書いた人はこんな人

- 「好きを仕事にするエンジニア集団」の(株)ライトコードです!
ライトコードは、福岡、東京、大阪の3拠点で事業展開するIT企業です。
現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。
いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。
システム開発依頼・お見積もり大歓迎!
また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」「WEBディレクター」を積極採用中です!
インターンや新卒採用も行っております。
以下よりご応募をお待ちしております!
https://rightcode.co.jp/recruit
ライトコードの日常12月 1, 2023ライトコードクエスト〜東京オフィス歴史編〜
ITエンタメ10月 13, 2023Netflixの成功はレコメンドエンジン?
ライトコードの日常8月 30, 2023退職者の最終出社日に密着してみた!
ITエンタメ8月 3, 2023世界初の量産型ポータブルコンピュータを開発したのに倒産!?アダム・オズボーン