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