Posted at

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 目的別チュートリアル