bottle を使ってみた.

Python の web framework である bottle を cygwin 上で使ってみた.おおむね良好.Python 3.6 で動かしている.

しかし,javascript から fetch() で呼ぶと,答が帰ってこない.cygwin でなく Windows にしてみても同じ.そのあといろいろアクセスすると無反応になったりして,どうもよくわからない.なんとなくではあるが,bottle が使っている wsgi webserver の reference implementation のせいではないかという気がする.

サーバを paste に変えてみたところ,ちゃんと動いているふうである.ただ,paste は開発が続いているのだろうか? 更新日が古いような気がする.とりあえず,pip3 install paste としたら入ったので,まあ良いのかもしれないが.インストールされた paste のコードに一箇所修正が必要だった.(大きなものをつくるとまだあるだろうという気がする)

--- /usr/lib/python3.6/site-packages/paste/httpserver.py~ 2017-11-25 13:40:29.185137200 +0900
+++ /usr/lib/python3.6/site-packages/paste/httpserver.py 2017-11-25 13:52:30.916417900 +0900
@@ -306,7 +306,7 @@
 for chunk in result:
 self.wsgi_write_chunk(chunk)
 if not self.wsgi_headers_sent:
- self.wsgi_write_chunk('')
+ self.wsgi_write_chunk(b'')
 finally:
 if hasattr(result,'close'):
 result.close()

アプリケーションのコードの方は,run() に,server='paste' という引数を加えればよい.debug=True だの reloader=True だのも一緒に指定できるようである.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*