月別:2019年07月

NHKEテレの化学基礎をよく見ます。
今更ながら化学の面白さを実感しています。NHKの番組構成力の力でしょうか?学生時代、化学の授業ほど退屈なものはなかったと記憶していますが、そう言えば私は高校1年で中退でした・・・(笑)
さて、この化学基礎、たまにですが小柳めぐみ先生が登場します。
小柳先生が登場するともう勉強どころじゃありません(笑)
なぜ、毎回小柳先生じゃないのでしょうか。NHKさんお願いします。小柳めぐみ先生メインで番組を作って下さい!

記事の投稿や閲覧をするには、当該データを保存しておく必要がある。
ということはデータベースが必要となる。

Flaskではデータベースを扱うSQLAlchemyというライブラリがあるそうです。

そもそもデータベースと言っても様々なものがあって、それぞれ特徴があり、向き不向きなどもあるようで初心者だとそれこそわけわかめです。

SQLAlchemyをインスト
ということでSQLAlchemyをインストする必要がある。ここで注意が必要だったのはpipenvでインストすると本では説明されているが、仮想環境envは導入していないのだった。
仮想環境だとプロジェクト毎に管理できるからとあったのだが、めんどくさそうなので(何がめんどくさかったのかは忘れた(笑))導入しなかったが今思えば導入すればよかった。

configに設定する
しかし、設定するのがSQLiteとなっていて少し混乱する。
そもそもSQLAlchemyはSQLをPythonのコードとして表現することができるものだそうで、だとするとSQLなどのデータベースの設定はやはり別途行う必要がありますよね。なるほどです。
SQLAlchemy をググるとは SQLalchemyはORM です DBに接続しメタデータを取得します ベースモデルを継承し、モデルを定義し、テーブルと関連づけます などと、呪文のような事が書かれていて愕然としますが、全く気にしません(笑)

init.pyも修正

モデルの定義
ここで先ほどのORMというのがでてきた。
モデルを定義しておくとモデルに対して指示をだすだけでデータベースを適切に操作してくれる、ようはデータベースを簡単に扱うことができるらしく、これら一連をORMというらしいです。
そもそも、データベースをどのように操作するかが分かってはいませんが、確かにwebサービスにアクセスしてユーザーネームや投稿された記事を保存し、それらを適切に取り出して表示する、などといったことをデータベースを操作するために別途データベースを扱う言語で記述し管理するとなると、しちめんどくさい。

flask_blog直下にmodelフォルダの作成 その中にentries.pyファイル作成
ここにモデルを定義する
タイトルはどうだとか、日付がどうたとか属性の定義
モデルに対する処理の定義
表示フォーマットの定義

データベースへの反映作業
これはモデルを定義した後一度だけ行う必要があるらしい。
コンソールで実行する場合は簡単だが、スクリプトを作成して実行するほうがいいようなのでそうする。
確かにスクリプトのほうが物凄くめんどくさい。
Flask-Scriptをインスト
flask_blog直下scriptsフォルダ作成 db.pyファイル作成
アプリケーションフォルダ直下にスクリプトファイルをコンソールで実行できるようにファイルを作成する
最後にスクリプトファイルをコマンドプロンプトから実行する。そうするとdbファイルが作成される

さて、SQLAlchemyをインストしようとするとできない (笑)
コマンドプロンプトから直接pythonを実行してインストするのではないようだ。
まず現在作業している、ようするにFlaskを使ってサイトを作っているフォルダをやはり指定してやり、そこでインストールするようだ。

データベースの反映作業をやろうとスクリプトファイルを実行しても、エラー(笑)
manage.pyファイルを完コピしたら動く。なぜ(笑)見た目はまったく変わらないのに(笑)

念のため今までのページがきちんと表示されるかやってみると今のところ動いた(逆になんにも反映していないのか(笑))

騒音防止対策も兼ねてラジオの聴取を久しぶりに復活させた(イヤフォンで視聴し少しでも紛らわせる意味で)。
ローカルのラジオ番組は地元企業などの宣伝を兼ねたコーナーが満載である。もはやFMの売りはいずこへ。
本日、FMサガの番組を聞いていたら、谷川建設の佐賀支店の支店長?が出演していた。毎週コーナーを持っているらしい。当然宣伝を兼ねているから枠をいくらかで買っているのだろう。
しかし、例の谷川議員の佐賀は北朝鮮のようだ、発言のときもこのコーナーはあったと思うがどのような面持ちで、またどのような空気でスタジオで喋っていたのだろうか(笑)

あの発言は物議を醸したが、あの問題の本質は北朝鮮と韓国を同列に扱うのはおかしいとか、そういった問題ではなく、長崎県人、ひいては一部の九州人が抱く佐賀差別が如実に出てしまった事に他ならない。

谷川建設は長崎に本社があるようだが、恐らく各支店が集まるような会議でも佐賀を馬鹿にしたような発言があからさまにされていたと想像するに難くない。
このようなことは実は九州ではあるあるである。日常茶飯事であり、佐賀に対しては何を言ってもいいという風潮があるので殊更問題視されることもない。従ってあの発言は佐賀県側からクレームが出たのではなくメディアのほうからの問題提起である点が重要だ。佐賀県があの発言に対して反発するのは逆に差別だといった意見も散見されるが、佐賀県知事はあの発言自体明確に批判していない。
件の谷川議員の発言だけではなく、それ以前にも県知事に対してだけではなく、会議の折、陰に日向に、佐賀は・・・佐賀県人は・・・とチクリチクリと言われていたに違いない。これは恐らく谷川議員だけではなく、その取り巻きも或いはJR九州などもそうだったかもしれない。なんせ佐賀県は九州一人口が少ない。従って九州の世論にあってその発言権はなきに等しい弱小県である。会議を主導するのは声の大きい人間だとよく言われるが、多勢に無勢、何を言っても聞く耳を持って貰えなかったかもしれない可哀そうな佐賀県(笑)
サガハラスメントである(笑)

url_for()を使うとviewに定義しているメソッド名を指定するとリンクに変換してくれるらしい。
いろんな場所で指定しているリンクパスをいちいち変更しなくてすむらしい。
これは便利である。
とはいうものの具体的にどのような挙動になって我々がどれだけ助かるのかがイマイチつかめないのは初心者だからであろう。
従ってその疑問点は華麗にスルー。

views.pyで修正する箇所はredirectの部分。パスをurl_for()でパスの部分をくくってやるようだ。元々パスだがパスではなくメソッド名になるようだ。
恐らく各htmlにはメソッド名が記述されているのでviewsのリンクを書き換えれば各ページのメソッドによりリンク先も変わるということなのだろう。たぶん。恐らく。
layout,loginページの該当箇所も記述する。具体的にはパスというかリンク先の箇所を直接url_for()に変更する。
今回は1発で動いた。