Symfoware

Symfowareについての考察blog

高速軽量なPython WSGI Server「bjoern」でBottleフレームワークを動かす

Bottleフレームワークのページを見てみると、
http://bottlepy.org/docs/stable/

「Serverには
・paste
・fapws3
・bjoern
・Google App Engine
・cherrypy
・その他のWSGIなサーバー
が使えるよ」

って書いてあります。


「bjoern」というサーバーは聞いたことがなかったので、動かして見ることにしました。






bjoern



https://github.com/jonashaag/bjoern
bjoernのREADMEを日本語に訳してみた

軽量、高速がウリのサーバーのようです。


FreeBSD 10.0にインストールしてみます。
パッケージで用意されてるかな?と思って調べてみると、


# pkg search bjoern
py27-bjoern-1.3.4




ありました。
pkg installでインストールします。


# pkg install py27-bjoern




pythonインタープリタでimport bjoernが成功すればOK。


# python
Python 2.7.6 (default, Mar 6 2014, 07:07:08)
[GCC 4.2.1 Compatible FreeBSD Clang 3.3 (tags/RELEASE_33/final 183502)] on freebsd10
Type "help", "copyright", "credits" or "license" for more information.
>>> import bjoern
>>>








Bottle



bjoernを試して見るために、簡単なアプリケーションを作成します。
今回はBottleフレームワークを使用しました。

Pythonの軽量Webフレームワーク「Bottle」


適当なフォルダに最新版を取得しました。


# wget --no-check-certificate https://github.com/defnull/bottle/raw/master/bottle.py




同じ階層に簡単なサンプルアプリケーションを作成。

・sample.py


  1. # -*- coding:utf-8 -*-
  2. import bottle
  3. @bottle.route('/hello/:name')
  4. def index(name='World'):
  5.     return bottle.template('<b>Hello {{name}}</b>!', name=name)
  6. bottle.run(host='0.0.0.0', port=8080)




まずは内蔵サーバーで実行してみます。


# python sample.py




ブラウザでhttp://[サーバーIP]/hello/testを表示。

386_01.png


これをbjoernで動かしてみます。






bjoernでBottle



直接bjoernを呼び出す方法はこんな感じになります。


  1. # -*- coding:utf-8 -*-
  2. import bottle
  3. @bottle.route('/hello/:name')
  4. def index(name='World'):
  5.     return bottle.template('<b>Hello {{name}}</b>!', name=name)
  6. # bjoernを使用するよう変更
  7. #bottle.run(host='0.0.0.0', port=8080)
  8. # Bind to TCP host/port pair:
  9. import bjoern
  10. bjoern.run(bottle.default_app(), host='0.0.0.0', port=8080)





bottle経由でbjoernを使用するのはこんな感じです。
runの引数でserver='bjoern'を指定します。


  1. # -*- coding:utf-8 -*-
  2. import bottle
  3. @bottle.route('/hello/:name')
  4. def index(name='World'):
  5.     return bottle.template('<b>Hello {{name}}</b>!', name=name)
  6. # bjoernを使用するよう変更
  7. #bottle.run(host='0.0.0.0', port=8080)
  8. # Bind to TCP host/port pair:
  9. #import bjoern
  10. #bjoern.run(bottle.default_app(), host='0.0.0.0', port=8080)
  11. # bottle経由でbjoern使用
  12. bottle.run(host='0.0.0.0', port=8080, server='bjoern')





起動した時のメッセージがこちら。


# python sample.py
Bottle v0.13-dev server starting up (using BjoernServer())...
Listening on http://0.0.0.0:8080/
Hit Ctrl-C to quit.




「using BjoernServer()」と表示されていますね。
ちなみにserverを指定していない場合は「using WSGIRefServer()」と表示されます。
関連記事

テーマ:サーバ - ジャンル:コンピュータ

  1. 2014/03/25(火) 21:20:49|
  2. Python
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Python WSGI Server「bjoern」とNginxの連携 | ホーム | Redisに改行コードを含むバイナリデータを保存するプロトコル>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/1368-1e842798
この記事にトラックバックする(FC2ブログユーザー)