MacでVSCode✖️Python✖️bottle ①viewがない

昨年、windows Updateの度に遅くなっていくwindowsマシンに嫌気が差してMacに乗り換えました。
でもこのMac。マシン自体は快適なんだけど、なかなかの曲者。
windows10✖️VScode✖️Python✖️bottle では起きなかったトラブルがちょこちょこ発生する。

最初に、トラブルが発生したのは、「テンプレートがみつかりません。」というエラー
この問題については、googleを検索すると、見つけたサイトを真似したらなんとか解決。
その解決方法は、下記の通りTEMPLATE_PATHにフォルダを追加するというもの。

from bottle import TEMPLATE_PATH
import os
TEMPLATE_PATH.append ( os.path.abspath(os.path.join(os.path.dirname(__file__), "views")))

今度は、cssファイル、jsファイルをアサインするために記述しても何故かMac環境では取得できていないご様子

@get('/static/<filePath:path>')
def index(filePath):
    return static_file(filePath, root='./static')

これも上のviewのテンプレートが取得できない時に同じで、
ローカルで実行する時、実行ファイルがルートにならないので、
この記述では取得できない。
そこで、実行の初期あたりで実行ファイルをルートに設定することで
staticで取得できなかったファイルを見事に取得することができました。
このへんは、仮想ターミナルなんかを使うと解決する話なのかな!?
まだまだ勉強不足。がんばろ♪

os.chdir(os.path.dirname(os.path.abspath(__file__)))

ロリポップでbottle③ – cgiとpyファイル

ロリポップで、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のプログラムは何も変更する必要なく、
ローカルと同じようにロリポップでも動かせます。