• トップ
  • ブログ一覧
  • 【第0回】Responderを使ってDjangoチュートリアルをやってみた【初期セットアップ編】
  • 【第0回】Responderを使ってDjangoチュートリアルをやってみた【初期セットアップ編】

    広告メディア事業部広告メディア事業部
    2019.08.19

    IT技術

    Responder(レスポンダー)とは?

    PythonでWebアプリケーションを作成するときは、Django(ジャンゴ)というフレームワークが有名です。

    しかし、今回は、Responder(レスポンダー)というWebアプリケーション用フレームワークをご紹介しようと思います。

    Responderは、いま注目の勢いのあるフレームワークです。

    Responderの特徴

    特徴として、以下の点などがよく挙げられます。

    1. 非同期処理が簡単に記述できる
    2. 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回目の今回は、割とつまずきやすい「環境構築」と「動作確認」から進めていくとこにしましょう!

    こちらの記事もオススメ!

    featureImg2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...
    featureImg2020.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回】の記事はこちら

    featureImg2019.08.20【第1回】Responderを使ってDjangoチュートリアルをやってみた【プロジェクト作成編】第1回~Responderを使ってDjangoチュートリアルをやってみた~初期セットアップが、まだお済みでない方は前回...

    【全まとめ編】Responderを使ってDjangoチュートリアルをやってみた

    featureImg2019.10.25【まとめ編】Responderを使ってDjangoチュートリアルをやってみたResponderを使ってDjangoチュートリアルをやってみた~まとめ~ライトコード社長も今、イチオシのWEBフレー...

    こちらの記事もオススメ!

    featureImg2020.07.17ライトコード的「やってみた!」シリーズ「やってみた!」を集めました!(株)ライトコードが今まで作ってきた「やってみた!」記事を集めてみました!※作成日が新し...
    featureImg2020.07.30Python 特集実装編※最新記事順Responder + Firestore でモダンかつサーバーレスなブログシステムを作ってみた!P...

    広告メディア事業部

    広告メディア事業部

    おすすめ記事