Flask
やはりデータベース上に各自でコメントを入れておきたいという需要はあるだろうから、ユーザーテーブルにもコメント入力できるようにしよう。 データを書き換える可能性を考えて、書き換え時にユーザーごとのコメント保存テーブルにIDと紐付けて保存し、再構…
さて、ユーザーごとにカスタマイズしたページを作るならば、テーブルの構成も自由に設定できるようになるのでないかということでmodels.pyのテーブル設定を考えてみた。実際にコピーできるカラムは元のテーブルにすでに載っているカラムからだけなわけだが、…
試しにRaspberry piで動くかやってみた。結果、まあ動きます。 ただし、ものすごく遅い。やっぱりメモリが足らんのだろうか。 サーバ上でローカルにアクセスしてて、より遅いかもしれないな。 別PCからアクセスしたらどうだろうか。多分変わらんだろうな。名…
いろいろやってみているんだけど、なかなか成功しない。 https://stackoverflow.com/questions/4019081/how-to-copy-a-sqlite-table-from-a-disk-database-to-a-memory-database-in-python https://stackoverflow.com/questions/3850022/how-to-load-existin…
sqlite3からは > .separator "\t" > .import hoge.txt hogeとすればhoge.txtというTSVファイルからデータをhogeテーブルにインポートできる。 これをshell scriptからやるには $ sqlite3 -separator $'\t' ./data.db ".import ./hoge.txt hoge"これでいい。 …
現状フルサイズ350カラム、実際に運用時30カラム程度で、165万件くらいのデータベースなんだが、ほぼすべてのカラムがTextとして構築されているためにMySQLに乗り切らないことは前に書いた。で、どうしてTextなんだということだが、要するにデータ解析の過程…
#sql>INSERT INTO Exome_sub(SampleName_phenotype, avinput_ref, avinput_alt, variant_id) SELECT SampleName_phenotype, avinput_ref, avinput_alt,variant_id FROM exome;こんな感じにテーブルexomeからテーブルexome_subにSampleName_phenotype, ref, a…
テーブルのclassを設計して起動時にテーブルを作成する事はできていたが、内部で操作をしてすでにあるテーブルを消して作り直すと言うのはやってなかった。 https://stackoverflow.com/questions/35918605/how-to-delete-a-table-in-sqlalchemy 結論としては…
http://freshlex.com/2017/03/13/pass-bootstrap-html-attributes-to-flask-wtforms/ややこしいことをしなければ、結構単純な書式で調整できそう。
SQLAlchemyのときもそうだったけどFlaskってなまじプラグインで機能を簡単に取り込めるようにされているおかげで、ちょっとややこしいことをしようとすると、かえってどうやっていいかわからなくなる。今回も検索をするためのフォームをカスタマイズしたいの…
現在の検索式では exome = exome.filter(Exome.SampleName_phenotype.like(form.name.data))こういうふうに検索ワード1個の入力に対して処理をしているが、2個だったら exome = exome.filter(Exome.SampleName_phenotype.like(form.name1.data) and Exome.Sa…
name test1 test2 id count ---------------------------------------- A001 x a 1 A001 x a 2 A001 x b 3 A001 x b 4 A001 x b 5 A001 y b 6 A001 y b 7 A001 y c 8 A001 y c 9 A001 y c 10 A002 x a 11 A002 y a 12 A002 x b 13 A002 y b 14 A002 x b 15 A…
FlaskでSQLAlchemyを使ってSQLiteのデータベースを運用している。 前提 model.pyでtableの定義をおこない、データベース上にテーブルが作成されるように設定しているが、データ自体はあとからtsvから読み込む。 primary keyとしてIDをふるが、それはデータベ…
SelectFieldの設定値を記憶させて次のセッションでそれを入れさせようとあれこれ考えたが、なかなかうまくいかない。 そこで違ったアプローチでの実現を考える。 要するに前回の検索値のセットをまとめて記憶しておいて、画面上の検索入力をすっ飛ばして記憶…
まず選択肢の設置 from wtforms import SelectMultipleField ex_func = SelectMultipleField('Exome function',choices=[('stopgain', 'stopgain'), (..........という感じにSelectMultipleFieldを使う。検索式の方はor_でなんとかなるかと思ったが実際はど…
UIの注文がいろいろ出てきたのでそれに対応。とりあえず表示させるカラムを選択できるようになって横幅にゆとりは出たが、1カラムで横幅を取っているカラムを表示させると、やっぱり狭くてみにくい。行内でおりかえすかスクロールバーを付けるなりしたいと…
http://tablesorter.com/docs/ これを使ってテーブルにソート機能を付ける。 おまけでcssによるテーブルの見た目もこざっぱりした。使い方もjsやcssなどを指定の通り設置し、対象のテーブルに適当なIDを付与して、 <script> $(function(){ $('#result').tablesorter(</script>…
http://aroundthedistance.hatenadiary.jp/entry/2015/03/17/114542 ココが参考になるだろうか。 http://d.hatena.ne.jp/heavenshell/20160111/1452513582 こことか http://blog.karky7.com/2013/07/wtforms.html これなんかも使えそうな https://stackoverf…
Flask-bootstrapでな〜にも考えずにページを作り始めると <div class="container"> <div class="row"> <div class="col-md-12">という感じでセッティングされる。 そもそもFlask-bootstrapはbootstrap.cssが見えるところになくてブラックボックスに近くて困るのだが .containerのデフォルトセティングがmediumになってるっぽ</div></div></div>…
Flaskで作ったアプリをサーバに置いて本格的に運用するなら、いちいちコマンドラインから起動するのは面倒くさい。 サーバを再起動する度にvncでログインして起動して、ログインしたまんまにしておかないとならないというのではイマイチだ。最初apacheをwww…
localStorageで文字列をブラウザに記憶させておけば、直前に行った解析の履歴をとっておくこともできそうなので、やり方を考える。 bamファイルを表示させるときに表示させたファイル名をlocalStorageで保存。 次のbamファイルを開くときに、前回保存したloc…
どんどんとプログラムはjavascriptの深みにハマっていっているが、現状、折角選んでロードしたtrackが検索をしなおすとすっかり消えて、また選び直さなければならないという若干面倒な仕様になっている。これをjavascriptのWEBストレージ機能でなんとかしよ…
結局ナマのSQL文に近いSQL表現言語を使わないと、ややこしい検索はできない気がしてきた。 from sqlalchemy import select ... conn = engine.connect() s = select([Test]) sample = conn.execute(s) これが sample = session.query(Test)と等価であること…
やりたいこと テーブルTestで、カラムz_idの数値をカラムnameとgeneが同じサンプルで合計してtotal_pointsとして各サンプルに付与し、total_pointsが2以上になるサンプルをqueryしたい 作ったコード total_points = func.sum(Test.z_id).label('total_points…
デフォルトにあいまい検索を取り入れることで複雑なif分岐をできるだけなくし、コードをすっきりさせる。コードの可読性は若干落ちるが、複雑な検索式の組み合わせをifを多用して作ると長大でredundantなコードになってしまい、混乱の元になる。 if form.nam…
detest.py from flask import Flask, render_template from sqlalchemy import create_engine, Column, Integer, String, func from sqlalchemy.ext.declarative import declarative_base from sqlalchemy.orm import sessionmaker from sqlalchemy.sql.expr…
$ sqlite3 test.db sqlite> .show echo: off eqp: off explain: off headers: off mode: list nullvalue: "" output: stdout colseparator: "|" rowseparator: "\n" stats: off width: sqlite> .separator , sqlite> .show echo: off eqp: off explain: off …
やることは データベースへの接続 テーブルの定義 マッピング先のPythonクラスを定義する セッションの作成 という感じ。まずはどのサイトでも書かれているimport しかしサイトごとに書き方が色々で、最もざっくりしたものだと from sqlalchemy import * fro…
SQLAlchemy 0.6.5 ドキュメント (和訳) http://omake.accense.com/static/doc-ja/sqlalchemy/index.html Flask-SQLAlchemy is a SQLAlchemy extension for Flask. http://flask-sqlalchemy.pocoo.org/2.1/ SQLAlchemyについて http://study-flask.readthedoc…
FlaskのextentionのFlask-SQLAlchemyと素のSQLAlchemyはどうやら色々と仕様が異なっている模様。 ネットの情報は素のSQLAlchemyの情報がほとんどなので、Flask-SQLAlchemyにこだわっていると、うまく動かない事が多い。 これはbootstrapのときもそうだった。…