「Bottle」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(update Pkg/AUR templates)
(Pkg/AUR テンプレートの更新)
 
(2人の利用者による、間の3版が非表示)
1行目: 1行目:
[[Category:ウェブー]]
+
[[Category:ウェブフレムワ]]
 
[[en:Bottle]]
 
[[en:Bottle]]
 
[http://bottlepy.org/docs/dev/ Bottle: Python Web Framework] より:
 
[http://bottlepy.org/docs/dev/ Bottle: Python Web Framework] より:
16行目: 16行目:
   
 
== インストール ==
 
== インストール ==
[[公式リポジトリ]]から {{Pkg|python-bottle}} (Python 3 用) または {{Pkg|python2-bottle}} (Python 2 用) をインストールしてください。
+
{{Pkg|python-bottle}} (Python 3 用) または {{Pkg|python2-bottle}} (Python 2 用) をインストールしてください。
   
 
== Hello World ==
 
== Hello World ==
42行目: 42行目:
 
== FastCGI ==
 
== FastCGI ==
   
([[Lighttpd]] や [[nginx]] などから) Bottle を扱うときは FastCGI が便利です。ただし Bottle をフックするものが必要です。{{Pkg|python-flup}}{{Broken package link|package not found}} パッケージの FLUP を使用する Hello World アプリケーションの例:
+
([[Lighttpd]] や [[nginx]] などから) Bottle を扱うときは FastCGI が便利です。ただし Bottle をフックするものが必要です。{{Pkg|python-flup}} パッケージの FLUP を使用する Hello World アプリケーションの例:
   
 
from bottle import route, run, FlupFCGIServer
 
from bottle import route, run, FlupFCGIServer

2018年12月19日 (水) 23:44時点における最新版

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

(Lighttpdnginx などから) 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)