kuroの覚え書き

96の個人的覚え書き

ディレクトリ階層の変更ほか

先に進む前にディレクトリ構成をちょっと変更しておく。
ここまででBlueprintを導入してview.pyからexone.pyやdemo.pyを分離してview.pyと同階層に格納していたが、view.pyをhome.pyと改名した上でviewsディレクトリを新たに設けて、views以下にhome.py、exome.pyなどを格納することにする。
これによって生じる変更点はmanage.pyのなかで

# import app.view
import app.views.home

app/__init__.pyで

# from app import demo, entry, exome
from app.view import demo, entry, exome

の2点。
そのうえでview/__init__.pyを新設。中身は空でいい。

__init__.pyに何を置くかが難しいな。


画面表示もちょっとやっておこう。
基本htmlタグでどうにでもできるのだが、データベース以外の画像コンテンツや、そもそもファイルホスティングはどうするのかだが、動的に変化しないこれらのファイルはapp/staticディレクトリに置くことになるようだ。試しに画像ファイルをページに表示させるためにapp/static/imgにlogo.jpgを置いておいて、ページ上に貼り付けてみた。
index.htmlの該当箇所に

<img src="{{ url_for('static', filename='img/logo.jpg') }}">

こんな感じでimgタグで表示させる。url_forでありかを指定してやるわけだね。staticディレクトリが起点であることを教えないとimgディレクトリにブラウザがたどり着けないというわけだ。この書式を利用して、データをダウンロードするホスティングサーバも作れそうだ。

ただし、fastqにしろBAMにしろファイルサイズがかなり大きいので、このアプリのサーバ機能で配信するよりは別にftpかhttpサーバををたてて、そちらから配信したほうがいいとは思う。