Python
Django
Flask
responder

この章の目標

推定読了時間: 5分〜15分

  • responderとは何かを学ぶ
  • responderを使って簡単なWeb APIやWebページを開発する

はじめに

このテキストでは、次の環境で動作させております。
- Mac OS X Sierra(バージョン10.126)
- Jupyter Notebook
- Python3.7

上記以外の開発環境や、Windowsなどの環境の場合、動作しない場合がございますのご了承ください。
何かあればkazu (AI Academy今なら無料)にDMください。

また、今後もこの記事を更新していく予定です。

responderとは

responderとはPythonのWebアプリケーションフレームワークです。
responderの特徴として、非同期処理が簡単に記述できる点と、GraphQL APIが簡単に書ける点などが挙げられます。
また、requestsやpipenvなどの開発者である Kenneth Reitz が開発し、2018年10月に公開して僅か2ヶ月ほどでGithubのStarが2000以上もついており、勢いのある点からも注目です。
pythonのWebアプリケーションフレームワークで人気があるのは、DjangoやFlaskなどが有名ですが、githubのThe Basic Ideaには次のような記載がされています。

The primary concept here is to bring the niceties that are brought forth from both Flask and Falcon and unify them into a single framework, along with some new ideas I have.

記載がある通り、responderは、FlaskとFalconの良さを1つにまとめ、幾つかのアイディアを加えたものがresponderとのことです。

responderのインストール

Macの方はターミナル、Windowsの方はコマンドプロンプトを開いて、次のpipコマンドによりインストールが可能です。

pip install starlette==0.8
pip install responder 

Jupyter NotebookやGoogle Colabをご利用の方は、セル内の先頭に!をつけて次のように実行することで、Notebook内でインストールが可能です。

!pip install starlette==0.8
!pip install responder 

responderを動かしてみる

次のプログラムを記述し、実行して見てましょう。

import responder 

api = responder.API()

@api.route("/hello/{who}")
def say_hello(req, resp, *, who):
    params = req.params.get("id", "")
    resp.headers["X-Pizza"] = "42"
    resp.status_code = 200
    resp.media = {
      "Hello": who,
      "param": params
    }

if __name__ == '__main__':
    api.run()

実行できましたでしょうか?
次のURLにアクセスして見ましょう。

http://127.0.0.1:5042/hello/aiacademy?id=1

スクリーンショット 2018-12-03 23.50.01.png

シングルページWeb

シングルページのWebアプリケーションを作る場合は、api.add_route("/", static=True)を記述します。
templatesを使うため、jinja2をインストールしておきましょう。

pip install jinja2
import responder
api = responder.API()

@api.route("/")
async def hello(req, resp):
    resp.text = api.template('index.html')


if __name__ == '__main__':
    # api.run()
    api.run(port=8080)

上記pythonプログラムと同じ場所に、下記index.htmlを作成し、staticフォルダに配置し、上記プログラムを実行して見ましょう。

templates/index.html
<h1>Hello, responder!</h1>

スクリーンショット 2018-12-04 0.33.06.png

最後に

今回は、今最も勢いあるpythonのWebアプリケーションフレームワークであるresponderを、簡単に説明しました。まだまだ多くのことが出来ますので、引き続き是非試して見てください。そしてAI AcademyではWebアプリ開発も学べますので、この機会にFlaskやDjangoも勉強して見てください。

この記事を書いた人

37741205_1003841679788059_2705403151040643072_n.jpg

サイバーブレイン株式会社
代表取締役CEO 谷 一徳

フォローお待ちしております!
Twitter
Facebook

2000名以上が参加しいてるAIコミュニティも運営しております。
毎日AIに関する情報を提供しておりますので、こちらのご参加もお待ちしております!
人工知能研究コミュニティ

その他記事

【保存版・初心者向け】独学でAIエンジニアになりたい人向けのオススメの勉強方法

【保存版・初心者向け】僕が本気でオススメするPythonと機械学習の良書12選

【保存版・初心者向け】Python 目的別チュートリアル