「Bottle」の版間の差分
ナビゲーションに移動
検索に移動
Kusakata.bot (トーク | 投稿記録) (update Pkg/AUR templates) |
Kusakata.bot (トーク | 投稿記録) (Pkg/AUR テンプレートの更新) |
||
42行目: | 42行目: | ||
== FastCGI == |
== FastCGI == |
||
− | ([[Lighttpd]] や [[nginx]] などから) Bottle を扱うときは FastCGI が便利です。ただし Bottle をフックするものが必要です。{{Pkg|python-flup}}{{Broken package link| |
+ | ([[Lighttpd]] や [[nginx]] などから) Bottle を扱うときは FastCGI が便利です。ただし Bottle をフックするものが必要です。{{Pkg|python-flup}}{{Broken package link|パッケージが存在しません}} パッケージの FLUP を使用する Hello World アプリケーションの例: |
from bottle import route, run, FlupFCGIServer |
from bottle import route, run, FlupFCGIServer |
2017年7月13日 (木) 00:08時点における版
Bottle: Python Web Framework より:
- Bottle は高速・シンプル・軽量な Python の WSGI ウェブマイクロフレームワークです。シングルファイルモジュールとして配布されており Python の標準ライブラリ以外には何も依存していません。
目次
機能
- ルーティング:
- リクエストは関数の呼び出しにマッピングされ簡単に動的な URL を使うことができます。
- テンプレート:
- Pythonic な高速テンプレートエンジンが組み込まれており mako, jinja2, cheetah テンプレートをサポートしています。
- ユーティリティ:
- フォームデータ、ファイルのアップロード、cookie、ヘッダーなどの HTTP 関連のメタデータに簡単にアクセスできます。
- サーバー:
- 開発用の HTTP サーバーが組み込まれており paste, fapws3, bjoern, Google App Engine, cherrypy などの WSGI 対応 HTTP サーバーをサポート。
インストール
公式リポジトリから python-bottle (Python 3 用) または python2-bottle (Python 2 用) をインストールしてください。
Hello World
以下は Hello World と表示するサーバーの例です:
from bottle import route, run @route('/:name') def index(name='World'): return 'Hello %s!' % name run(host='localhost', port=8080)
Bottle を起動するときは Python を使います:
python server.py
以下のように表示されます:
Bottle server starting up (using WSGIRefServer())... Listening on http://localhost:8080/ Use Ctrl-C to quit.
FastCGI
(Lighttpd や nginx などから) Bottle を扱うときは FastCGI が便利です。ただし Bottle をフックするものが必要です。python-flup[リンク切れ: パッケージが存在しません] パッケージの FLUP を使用する Hello World アプリケーションの例:
from bottle import route, run, FlupFCGIServer @route('/:name') def index(name='World'): return 'Hello %s!' % name run(host='localhost', port=8080, server=FlupFCGIServer)
詳しくは こちら を読んでください。
リロード
デフォルトでは、Bottle ではファイルのリロードができませんが、新しいサーバーを起動して切り替えることでリロードすることができます:
from bottle import route, run @route('/:name') def index(name='World'): return 'Hello %s!' % name run(host='localhost', port=8080, reloader=True)
リロード間隔を設定するには (デフォルトでは1秒です):
run(host='localhost', port=8080, reloader=True, interval=0.5)
トラブルシューティング
アプリケーションが外部から見れない
Bottle を直接ウェブサーバーとして使用する場合、'localhost' 以外からアクセスできるようにホストする IP アドレスを設定する必要があります:
run(host='192.168.2.3', port=8080)
ファイルを変更しても Bottle が自動的にリロードされない
Bottle はインポートされたファイルを監視してアプリケーションに変更がないか確認しています。リロードしたいアプリケーションモジュールをインポートしてください:
import myapp
上記のコマンドが使えない場合:
@route('/:name') def index(name='World'): import myapp return myapp.init(name)