EXCEL VBAやPHP、Laravelに関するWINDOWS・WEBプログラミングの解説ブログです。

レンタルサーバーでpython FLASK運用、mySQLその2GET POSTメソッド

メジャーレンタルサーバエックスサーバにpythonのマイクロフレームワークFlaskをインストールし、mySQLを操作するサンプルその2です。
今回は、GET・POSTメソッドでパラメータを取得し、会員情報テーブルを追加・更新・削除する具体的なサンプルです。また、アプリケーションの見栄えをよくするためにbootstrapも使っています。
XサーバーでFlaskを運用するには、PHPのようにファイルを放り込んだら良いというものではありませんので、環境の構築のために、SSHでサーバ接続し、諸々の事前が準備が必要です。私の環境構築は、参考になるか分かりませんが、動画にしてあります。
また、前回の記事XサーバーでFlask運用、WEBブラウザからmySQL操作その1select,insert,updateをご確認の上ご覧いただけますと幸甚です。

アプリケーション概要

会員情報テーブルを追加・更新・削除するアプリケーションの概要です。

会員情報の追加

下画像の「追加」をクリックします。

下画像 会員追加フォームが表示されます。名前・年齢を入力し「追加」をクリックします。

下画像のように、会員情報「山田 太郎」が追加されます。

 

会員情報の更新

下画像の「山田 太郎」右の「更新」をクリックします。

下画像 会員更新フォームが表示されます。名前・年齢を変更し「更新」をクリックします。

下画像のように、会員情報が更新されます。

会員情報の削除

下画像の「山田 次郎」右の「削除」をクリックします。

下画像 会員更新フォームが表示されます。「削除」をクリックします。

下画像のように、会員情報が削除されます。

.htaccess

このようにすることで、https://ドメイン/test1/index.cgi でも https://ドメイン/test1/  でも同じ内容がブラウザに表示されます。

index.cgi

from index  のindexがindex.pyのpythonファイル名になります。
/home/XサーバのサーバーID/.linuxbrew/bin/python3はXサーバ内のpythonの格納されている場所を指しています。
それ以外は、定型文として、そのまま流用できます。
index.cgiの属性は755にする必要があります。

index.py

いよいよpythonファイルです。pythonファイルの全内容です。一行目のrequestは、GET POSTメソッドを使うので必要です。redirectは、SQLを実行後、ルートページに戻るために、redirect処理を使います。mySQL準備するテーブルや基本的な説明は、前回の記事XサーバーでFlask運用、WEBブラウザからmySQL操作その1select,insert,updateをご確認ください。

index.py全レコードの表示

URLが https://ドメイン/test1 のときの処理です。
index.py #1全レコードの表示  箇所です。kaiin_tableの全レコードを配列に格納し、kaiin.htmlに引数として渡します。
/templatesにkaiin.htmlは配置します。
下がkaiin.htmlの中身です。見栄えをよくするために、CSSテンプレートとしてbootstrapを利用しています。

index.py会員情報追加

全レコードの表示ページの「追加」をクリックすると、https://ドメイン/insert_form にページが変わります。
下画像が、URLがhttps://ドメイン/insert_formのときの処理です。
①②③に変数に値を格納し、form.htmlに引数として渡します。

fom.htmlの中身です。/templatesにform.htmlは配置します。

https://ドメイン/insert_formで名前・年齢を入力した後、submitボタンをクリックすると、 https://ドメイン/insert_conf にページ遷移します。
下画像が、URLがhttps://ドメイン/insert_confのときの処理です。
⑤POSTメソッドでパラメータを受け取るための記述です。
⑥⑦パラメータname,ageの値を変数に格納します。
⑧INSERTするSQLを実行した後、redirectでルートにページ遷移します。

index.py会員情報削除

全レコードの表示ページの「削除」をクリックすると、https://ドメイン/delete_form?id=110 にページが変わります。
下画像が、URLがhttps://ドメイン/delete_form?id=110のときの処理です。
②パラメータidの値を編集に格納します。
一件のレコードを取り出すSQLを実行し、変数name,ageに値を格納した後、deleteform.htmlに引数として渡します。

deletefom.htmlの中身です。/templatesにdeletefom.htmlは配置します。

https://ドメイン/delete_formでsubmitボタンをクリックすると、 https://ドメイン/delete_conf にページ遷移します。
下画像が、URLがhttps://ドメイン/delete_confのときの処理です。
④POSTメソッドでパラメータを受け取るための記述です。
⑤パラメータidの値を変数に格納します。
⑥DELETEするSQLを実行した後、redirectでルートディレクトリにページ遷移します。

index.py会員情報更新

全レコードの表示ページの「更新」をクリックすると、https://ドメイン/update_form/110 にページが変わります。
※削除のとき同様 https://ドメイン/update_form?id=110 のようにGETメソッドを利用することも当然できます。
下画像が、URLがhttps://ドメイン/110のときの処理です。FLASKはURLに含まれるデイレクトリ名をパラメータとして取得することができます。
①②デイレクトリ名を変数idに格納します。
③一件のレコードを取り出すSQLを実行し、変数name,ageに値を格納した後、form.htmlに引数として渡します。

https://ドメイン/update_formで名前、年齢を変更入力し、submitボタンをクリックすると、 https://ドメイン/update_conf にページ遷移します。
下画像が、URLがhttps://ドメイン/update_confのときの処理です。
④POSTメソッドでパラメータを受け取るための記述です。
⑤パラメータname,age,idの値を変数に格納します。
⑥UPDATEするSQLを実行した後、redirectでルートディレクトリにページ遷移します。

2020年9月の四連休以降、時間を見つけてpythonというかFlask勉強していますが、とても面白いです!はまっています。