csvをpythonでブラウザで更新する(spyre使ってみた) | www.yoshiislandblog.net

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”」に関連して呼び出される。

%d bloggers like this: