• トップ
  • ブログ一覧
  • 【第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...

    ライトコードでは、エンジニアを積極採用中!

    ライトコードでは、エンジニアを積極採用しています!社長と一杯しながらお話しする機会もご用意しております。そのほかカジュアル面談等もございますので、くわしくは採用情報をご確認ください。

    採用情報へ

    メディアチーム
    メディアチーム
    Show more...

    おすすめ記事

    エンジニア大募集中!

    ライトコードでは、エンジニアを積極採用中です。

    特に、WEBエンジニアとモバイルエンジニアは是非ご応募お待ちしております!

    また、フリーランスエンジニア様も大募集中です。

    background