よちよちpython

独習 python/Qpython/Pydroid3/termux/Linux

Pythonのbottleでブラウザ自動リロード実験

Python用のWebフレームワークbottleでWebページを自動的にリロードし現在時刻を表示させ続ける方法の実験。
前回GPSスピードメーターを作ったが、Webページで表示できないか探っていた所の一つのアイデア断片。



作業環境


Androidスマホ
termux
Python3.7 bottle



軽量Webフレームワークのbottleを使います。
bottle公式ページ https://bottlepy.org/docs/dev/

bottleは通常のライブラリのようにpip installでインストールしてimportして使うか、又はそうするのでは上手く動かないと説明したサイトがある。
その場合は上の公式ページからbottle.pyをダウンロードして、動かすPythonスクリプトと同じフォルダに入れて置けば動く、とのこと。

ブラウザの自動リロード方法参考


こちらを参考にしましたhttps://www.mitsue.co.jp/knowledge/blog/frontend/201806/29_1525.html

コード


ローカルホストのポート8080番にブラウザでアクセスすると、2秒おきにブラウザが自動更新して現在時刻を表示するプログラム。
コードを実行したら、ブラウザを起動し、urlにhttp://localhost:8080/と入力。
終了する時はCtrl+cで。

from bottle import route, run, template
import datetime

@route('/')
def index():
    t = datetime.datetime.now()
    
    return template("""
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width">
    <meta http-equiv="refresh" content="2; URL=">
    <title>Document</title>
<b>現在時刻 <br>{{t}}</b>""", t=t)

run(host='localhost', port=8080, reload=True, debug=True)
Bottle v0.12.17 server starting up (using WSGIRefServer(reload=True))...
Listening on http://localhost:8080/
Hit Ctrl-C to quit.

127.0.0.1 - - [22/Oct/2019 12:38:37] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:38:37] "GET /favicon.ico HTTP/1.1" 404 742
127.0.0.1 - - [22/Oct/2019 12:38:39] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:38:41] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:38:43] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:38:45] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:38:48] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:38:50] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:38:52] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:38:54] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:38:56] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:38:58] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:39:00] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:39:02] "GET / HTTP/1.1" 200 212
127.0.0.1 - - [22/Oct/2019 12:39:04] "GET / HTTP/1.1" 200 212
/data/data/com.termux/files/home/python3.7/lib/python3.7/site-packages/bottle.py:3133: ResourceWarning: unclosed <socket.socket fd=42, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('127.0.0.1', 8080)>
  pass
ResourceWarning: Enable tracemalloc to get the object allocation traceback

スクリーンショット画像

f:id:chayarokurokuro:20191022130403j:plain


画像ではわからないが、ブラウザが自動的にリロードしている。
以上です。