AndroidのtermuxからPythonでbottleを動かすテスト
Pythonスクリプトをターミナルから実行すると、ブラウザが立ち上がり、ローカルホストのhtmlテンプレートを表示するテストです。
動作環境/必要なもの
用意したスクリプト (同じフォルダに入れておく)
準備
GoogleプレイからインストールしたtermuxでPythonをインストールしたら、termux-apiと、Webフレームワークモジュールのbottleをインストールします。
$ pkg install termux-api
$ pip install bottle
hello.tpl
<!DOCTYPE html>
<html lang="ja">
<head>
<title>Hello {{name}}</title>
</head>
<meta name="viewport" content="width=device-width">
<body>
% from datetime import datetime
% now = datetime.now()
<h1> {{mes}} {{name}} さん</h1>
今日は {{now.year}}/{{now.month}}/{{now.day}} です。
<p>
現在時刻は {{now.hour}}:{{now.minute}}:{{now.second}} です。
</p>
</body>
</html>
bottle_test.py
import bottle
from bottle import route, run ,template
from datetime import datetime
@route("/hello/<name>")
def greet(name):
now_dt = datetime.now()
if now_dt.hour < 10 and now_dt.hour >4:
mes = "おはようございます"
elif now_dt.hour < 18 and now_dt.hour > 9:
mes = "こんにちは"
else:
mes = "こんばんわ"
return(template('hello', name=name, mes=mes))
# termux-apiを使ってブラウザ起動、ローカルホスト接続
import os
os.system("termux-open-url http://localhost:8080/hello/hogehoge")
# bottleでサーバー起動
run(host='localhost', port=8080, debug=True, reloader=True)
実行
termuxから
$ python bottle_test.py
ブラウザが立ち上がってテンプレートの中身が表示されます。
ブラウザ起動は termux-api のコマンド termux-open-url で行いました。
run()の後に書くとブラウザが立ち上がりませんでした。
終了する時は、ブラウザを閉じ、termuxで Ctrl+c を入力すればサーバーが止まります。
Webアプリ風なことが出来そう…
参考
termux-api
Termux:API - Termux Wiki