Memo of Flask
Flask
- Welcome to Flask — Flask Documentation (1.1.x)
- Flask (web framework) - Wikipedia Flask is a micro web framework written in Python. It is classified as a microframework because it does not require particular tools or libraries.
- Installation — Flask Documentation (1.1.x)
- Quickstart — Flask Documentation (1.1.x)
- Static Files — Flask Documentation (1.1.x)
- staticの扱い
- Adding a favicon — Flask Documentation (1.1.x)
- Adding an iOS home screen icon for your website | Create.net
mod_wsgi and Apache2
- mod_wsgi (Apache) — Flask Documentation (1.1.x)
- Web Server Gateway Interface - Wikipedia The Web Server Gateway Interface (WSGI) is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language.
- mod_wsgiはpipで入れようねって話 - Qiita よく分からん。結局Flask公式通りに、mod_wsgiもapt-getでinstallした。
- mod_wsgiをなぜかpipでインストールできない時 - Qiita RuntimeError: The 'apxs' command appears not to be installed or is not executable.
- raspbian stretch - Apache2 on Raspberry pi 3 - cannot install WSGI module - Raspberry Pi Stack Exchange sudo apt update
- python - Invalid command WSGIDaemonProcess Deploy Django application on CentOS 6.7 - Stack Overflow
- venv環境ではactivate_this.pyを実行する処理を書いてね、とあるが、activate_this.pyがない。
- python - No activate_this.py file in venv / pyvenv - Stack Overflow ええ、もうないです。
- mod wsgi - How can I activate a pyvenv vitrualenv from within python? (activate_this.py was removed?) - Stack Overflow ええ、もうないです。
- virtualenv/activate_this.py at main · pypa/virtualenv · GitHub Pathを調整する小さいスクリプトです。
- Virtual Environments — mod_wsgi 4.8.0 documentation mod_wsgi公式
- Minimal Apache configuration for deploying a flask app (Ubuntu 18.04) | Codementor 環境構築例: Apache2, mod_wsgi and Flask
- Apache To Python For mod_wsgi - Qiita 環境構築例: Apache2 and mod_wsgi
- ラズパイにApache2を導入してみる - Qiita 環境構築例: Apache2 on Raspberry Pi
Jinja2
from jinja2 import Template template = Template('Hello {{ name }}!') template.render(name='John Doe')
from jinja2 import Environment, FileSystemLoader env = Environment(loader=FileSystemLoader('templates')) template = env.get_template('hello.html') with open('output.html', 'w') as f: f.write(template.render(name='John Doe'))
- python - Remove unnecessary whitespace from Jinja rendered template - Stack Overflow
- htmlから無駄なスペースを除く。
app.jinja_env.trim_blocks = True app.jinja_env.lstrip_blocks = True
Abema API
見やすいAbema番組表がほしい、というのがそもそものモチベーション。
- abemaTV の番組表 json | ニコラボ Authorization:bearerの値はWeb browserのdev toolで確認。
- AbemaTV Timetable Viewer のソースコード
Environment
- Python 3.7.3
- Flask 1.1.2
- mod-wsgi 4.7.1
- Apache/2.4.38
- Raspberry Pi 2 Model B
統計検定2級の勉強法
統計検定2級の勉強を約6週間して、S評価をとりました。半年後の1級は2科目とも落ちました。それくらいのレベルです。
1. 統計WEBを読む。
bellcurve.jp
2. 赤本(と青本の分散分析)をする。
試験の1週間前に合格圏内に入り、最後の1週間で9割以上取れるくらいになったと思います。
1ヶ月分の雨量が一日で降ることはどれくらい稀か?
今年も局地的に大雨が降ることが多く、各地で被害が出ている。最近ニュースでよく聞くな、と思うのが、「平年の1ヶ月分の雨量が一日で降った」というコメント。感覚的にすごい雨が降ったことは分かるが、これはどれくらい珍しいことなのだろう。
気象庁のwebサイトで過去の気象データをダウンロードできる(気象庁)。決して使いやすいサイトではないが、何も公開してないよりははるかにマシだと思って、粛々とダウンロードする。
地点: 管区気象台がある6地点(札幌、仙台、東京、大阪、福岡、那覇)
項目: 降水量の日合計
期間: 8月1日から8月31日までの日別値を1955年から2013年まで。
csvファイルでダウンロードできるが、すぐに容量制限に引っかかるので、期間で4回に分けてダウンロードした。データ分析はPythonのnumpy, pandas, matplotlibを使った。
(Fig.1) 早速結果を載せていく。横軸が日、縦軸が日別降水量の累積和のグラフを書いて、累積和がどのように変化するか見たい。次の手順で作った。
1. 8月の日別降水量を、平年の8月降水量で割る(%)。平年の降水量は、30年の平均。今回はそれぞれの観測地点の1981年から2010年の平均値を使用した。(下の参考1を参照)
2. 年ごとに、日別降水量(%)を降順に並べたリストを作る。
3. このリストを累積和に変換する。
4. 那覇の2001年から2013年までの結果を示す。
横軸が日、縦軸が日別降水量の累積和を平年の8月降水量で割ったもの。平年の8月降水量で割っているので、100%を超える年もあるし、越えない年もある。黒線の2007年はよく雨が降って、平年の約250%の雨が降ったことが分かる。このうち、平年の約170%分はもっとも雨の降った一日だけで降ったことが分かる。最も雨が降った2日で、平年の1ヶ月分以上の雨量が降った年が3回あったことも分かる(2007年、2011年、2012年)。ふむふむ。
(Fig.2) 次は、平年より雨が降った年について、雨が多く降った何日で平年の8月降水量を超えたかを全国6ヶ所について点を打ったグラフ。1955年から2013年。
横軸が年。縦軸は、平年の8月降水量を越えるのに要した日数。さっきの図で見た、横軸2007年、縦軸1日のところに那覇の点が、横軸2011年と2012年、縦軸2日のところにそれぞれ那覇の黄色い点が打たれていることが確認できる。
(Fig.3) ヒストグラムにした。
横軸は、平年の8月降水量を越えるのに要した日数。縦軸はそれぞれのビンでの回数。まず、全国6ヶ所の59年間、すなわち354点分ある。そのうち、平年より雨が降ったのは、145点。145/354=41%。大体半分だね。145点で作られたヒストグラムを見ると、1日で平年の8月降水量を越えたのは16回。2日は36回で最頻値。 3日は22回。平年より雨が降る時、それが3日以内で降るのは、(16+36+22)/145=51%。雨が降る年の半分は、3日以内の少ない日数であっという間に降るようだ。
1日で平年の8月降水量を越えたのは16回/6地点x59年間=約5%/地点/年。ある地点を考えれば、1/5%=20年に一度、平年の1ヶ月分の雨が、1日で降る年がある可能性がある。なるほど。確かに稀だな。ただし、3日以内では4年に一度。結構ある。
1地点では20年に一度でも、全国に独立な地点は20ヶ所以上あるし、8月だけじゃなく、6-9月を考えられる。日本全国で考えると、一日で平年の1ヶ月分の雨が降ることは、そんなに珍しいことじゃないといえる。ニュースで、「平年の1ヶ月分の雨量が一日で降った」というコメントを聞くのはそんなに珍しいことじゃないものの、地元の人へのインタビューで、「こんなことは初めて」というコメントが返ってくるのは、まあそうか。1地点でみれば頻度は高くないものの、全国では毎年のように大雨被害が起こっているので、われわれ市民や行政は、その経験や教訓を蓄積し、適切な対策をするのが懸命だ。
(参考1)
平年の8月降水量(mm)。1981年から2010年の30年間の平均値を使用した。
'Sapporo', 'Sendai', 'Tokyo', 'Osaka', 'Fukuoka', 'Naha' =
123.75, 166.85, 168.2, 90.9, 172.0, 240.45
(参考2)
(Fig.4)全国6ヶ所の59年間について、8月の降水量をヒストグラムにしたもの。