この記事は3年以上前に書かれた記事で内容が古い可能性があります
csvをpythonでブラウザで更新する(spyre使ってみた)
何か簡単にcsvをブラウザで編集できないかと思い、spyreを使ってみた。(追加だけ)
本当はもっとデータのプロットをするものっぽいが。
https://github.com/adamhajari/spyre
コード最新は以下に置いてある
https://github.com/yoshi-island/spyre_work
準備
pythonはバージョン3.5.0
spyreもインストール
% python -V Python 3.5.0 % pip install dataspyre
こんな感じにファイルを配置。data配下に編集するcsvファイルを配置しておく。
% tree . ├── csv_update.py ├── data │ ├── test_data.csv
今の所、5列固定
% cat data/test_data.csv data1,data2,data3,data4,data5 haha,hihi,huhu,hehe,hoho gaga,gigi,gugu,gege,gogo rara,riri,ruru,rere,roro
実行
% python csv_update.py
「http://127.0.0.1:9093/」にアクセスし、
「file name」欄に編集するcsvファイル名を入力し「get data from file path」を押す
データを入力して「add data」ボタンを押す
もう一度「get data from file path」を押すとデータが追加されている
dataディレクトリ配下にバックアップも取得するようになっている
% tree . ├── csv_update.py ├── data │ ├── test_data.csv │ ├── test_data.csv_20180103173523 │ └── test_data.csv_20180103174330
% cat data/test_data.csv data1,data2,data3,data4,data5 haha,hihi,huhu,hehe,hoho gaga,gigi,gugu,gege,gogo rara,riri,ruru,rere,roro data1,data2,data3,data4,data5
解説
大枠
大枠はこれ
class CsvUpdateApp(server.App): ``` ここに処理記載 ``` if __name__ == '__main__': app = CsvUpdateApp() #呼び出し app.launch(port=9093) #ポート番号指定してローンチ
クラス
クラスの中に記載するもの
title
タイトル。左上に表示される
inputs
左に表示される、データ入力方法。
テキストボックスだけでなく、プルダウンなど色々定義できる。
リスト形式で定義する。
tabs
タブ。
controls
inputに入力したデータを元にどのようにoutputへデータを反映させるかを定義する。
outputs
右側に表示される部分。htmlやtableだけでなくplotとか色々できる。
control_idでcontrolsと紐付ける。
関数
getDataはoutputsの「”type”: “table”」に関連して呼び出される。
getHTMLはoutputsの「”type”: “html”」に関連して呼び出される。