よちよちpython

独習 python/Qpython

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