【第0回】Responderを使ってDjangoチュートリアルをやってみた【初期セットアップ編】
IT技術
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回目の今回は、割とつまずきやすい「環境構築」と「動作確認」から進めていくとこにしましょう!
こちらの記事もオススメ!
2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...
2020.07.30Python 特集実装編※最新記事順Responder + Firestore でモダンかつサーバーレスなブログシステムを作ってみた!P...
初期セットアップ
まずResponderでは、Pythonのバージョンが3.6以上である必要があります。
もし、バージョンが3.6未満であれば、Pythonのバージョンアップから始めてください。
なお、本記事の筆者は、「MacOS 10.14.5」と「 Python 3.7.3」で実装および動作確認をしています。
OSやPythonのバージョンによって動作が多少異なる場合があるかもしれませんので、その点はご了承ください。
Responderのインストール
Pythonのバージョンをクリアした方は、早速、Responderのインストールを行なっていきましょう!
pipでパッケージ管理をしている人は、
1pip install responder
でインストールが可能です。
この際、パーミッションのエラー等でインストールできなかった方は、コマンドの後ろに--user をつけて再度実行してみてください。
これで、Responderのインストールは完了です!
実際に動かしてみる: View
まずは、本記事用に適当な場所に「responder」という名のディレクトリを作っておきましょう。
そのディレクトリの中に、test.py を作成します。
そうしたら、以下のコードを書いて実行してみましょう。
1import responder
2
3api = responder.API()
4
5@api.route('/')
6def hello_world(req, resp):
7 resp.text = 'hello, world!'
8
9if __name__ == '__main__':
10 api.run()
そうすると以下のように表示されます。
1INFO: Started server process [6440]
2INFO: Waiting for application startup.
3INFO: 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行の命令で行えます。
それが以下のコードです。
1import responder
2
3api = responder.API()
4
5# -- 省略 --
6if __name__ == '__main__':
7 api.run()
そして、実際に立ち上がったサーバのルートにアクセスすると、@api.route('/') で定義された関数に飛ばされます。
今回は、'hello, world' というテキストをレスポンスするという関数だったので、先ほどのような結果になりました。
したがって、もし以下のような関数を追加すれば、
1@api.route('/responder')
2def hello_responder(req, resp):
3 resp.text = 'hello, responder!'
http://127.0.0.1:5042/responder で「hello, responder!」と表示されるはずです。
ここまでで、なんとなくResponderの基本構造は掴めてきたのではないでしょうか?
ResponderのViewテンプレート
あとは、Responderの基本的な機能を紹介して、第0回は終わりにしたいと思います。
まずは、先ほどのコードを以下のように修正します。
1import responder
2
3api = responder.API()
4
5
6@api.route('/{word}')
7class Hello:
8 def on_get(self, req, resp, word):
9 resp.content = api.template("index.html", word=word)
10
11
12if __name__ == '__main__':
13 api.run()
その次に、templetes というサブディレクトリにindex.html を作成し、以下のコードを書いて保存してみてください。
1<!-- templates/index.html -->
2<!DOCTYPE html>
3<html lang="ja">
4<head>
5 <meta charset="UTF-8">
6 <title>Sample Application!</title>
7</head>
8<body>
9 Hello, {{word}}
10</body>
11</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チュートリアルをやってみた
こちらの記事もオススメ!
2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...
2020.07.30Python 特集実装編※最新記事順Responder + Firestore でモダンかつサーバーレスなブログシステムを作ってみた!P...
ライトコードでは、エンジニアを積極採用中!
ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。
採用情報へ
「好きを仕事にするエンジニア集団」の(株)ライトコードです! ライトコードは、福岡、東京、大阪の3拠点で事業展開するIT企業です。 現在は、国内を代表する大手IT企業を取引先にもち、ITシステムの受託事業が中心。 いずれも直取引で、月間PV数1億を超えるWebサービスのシステム開発・運営、インフラの構築・運用に携わっています。 システム開発依頼・お見積もり大歓迎! また、現在「WEBエンジニア」「モバイルエンジニア」「営業」「WEBデザイナー」「WEBディレクター」を積極採用中です! インターンや新卒採用も行っております。 以下よりご応募をお待ちしております! https://rightcode.co.jp/recruit