ShimakazeSoft Tech

Python好きの新卒WEBエンジニアが技術記事を執筆するブログ。主にWEB系や機械学習系のことを掲載。

Falcon チュートリアル(翻訳) FirstSteps

f:id:shimamili:20180527174054j:plain
falcon

Tutorial — Falcon 1.4.1 documentation
この記事は上記の翻訳記事になります。
誤訳等があれば、ご指摘いただければ幸いです。



最初に新しいvirtualenvの中にFalconをインストールします。
そのために、 "look"という新規のプロジェクトを作成し、チュートリアルで使用できる仮想環境を設定します。

$ mkdir look
$ cd look
$ virtualenv .venv
$ source .venv/bin/activate
$ pip install falcon

プロジェクトのトップレベルモジュールがプロジェクトと同じように呼び出されるのは通例で、最初のモジュールの中に別の "look"ディレクトリを作成し、空の__init__.pyファイルを作成してPythonモジュールとして認識させましょう。

$ mkdir look
$ touch look/__init__.py

次に、アプリケーションへのエントリポイントとなる新しいファイルを作成しましょう。

$ touch look/app.py

ファイル階層は次のようになります。

look
├── .venv
└── look
    ├── __init__.py
    └── app.py

次に、お好きなテキストエディタでapp.pyを開き、次の行を追加します。

import falcon

api = application = falcon.API()

このコードは、apiとしてWSGIアプリケーションを作成します。apiに好きな変数名を使うことはできますが、Gunicornはデフォルトでapiが呼び出されることを想定しているため、applicationを使用します。

Note

WSGIアプリケーションは、WSGIプロトコルを理解している任意のWebサーバー上でアプリケーションをホストできるように、明確に定義された呼び出し可能なものです。

次に、falcon.APIクラスの中身を見てみましょう。

Pythonをインストールして起動する:

$ pip install ipython
$ ipython

今度は、次のように入力してfalcon.API callableを調べます。

In [1]: import falcon
In [2]: falcon.API.__call__?

又は、Pythonで標準のhelp()関数を使用しても調べることができます。

In [3]: help(falcon.API.__call__)

以下のような結果が表示されるはずです。

WSGI `app` method.

Makes instances of API callable from a WSGI server. May be used to
host an API or called directly in order to simulate requests when
testing the API.

(See also: PEP 3333)

Args:
    env (dict): A WSGI environment dictionary
    start_response (callable): A WSGI helper function for setting
        status and headers on a response.


メソッドシグネチャに注意してください。 envとstart_responseは標準のWSGIパラメータです。 Falconはこれらのパラメータの上に薄い抽象を追加するので、wsgiと直接対話する必要はありません。
Falconフレームワークには、上記の手法を使用して参照できる広範なインラインドキュメントが含まれています。

Tip

IPythonに加えて、Pythonコミュニティには、bpythonやptpythonなど、試してみたい他のスーパーパワーREPLがいくつかあります。