ロリポップで、pythonでbottleを使うにあたって、
「PythonのWebフレームワーク Bottleをロリポップサーバ(ロリポプラン)で動かしてみる」
を参考に動かしていたのですが、この方法だと、pcでテストした後、
ロリポップにアップロードする時にトップ部分と最後の部分を変更する必要があり、
何度もテストして変更してってなると、とても面倒・・・
そこで、CGIファイルとpythonのプログラムファイルを別々で準備する。
CGIファイルはシンプルに、pythonを記述したファイルをimportして、
bottleのrunでcgiとして実行するだけの処理を記述する。
testpython.cgi
#!/usr/local/bin/python3.4
# -*- coding: utf-8 -*-
from bottle import run
import testpython
run(server='cgi')
そして、pythonのプログラムファイルは、
testpython.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
:
コード
:
# ビルドインサーバの実行
if __name__ == '__main__':
run(host='localhost', port=8080, debug=True, reloader=True)
にしておくことで、ローカルテストの時は、localhot:8080で起動され
ロリポップで動かす場合には、このlocalhost部分は無視されます。
先頭のバージョン部分も変更不要
実行する時のリンクは
ロリポップでbottle①-getがpostに-解決編
で紹介したように、テンプレート側のリンクアドレスを
上のcgiファイル名にしておくだけで良いので、
テストとアップロードを繰り返す時は、
pythonのプログラムは何も変更する必要なく、
ローカルと同じようにロリポップでも動かせます。