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

レンタルサーバーでpython FLASK運用,ログインフォーム作成

レンタルサーバエックスサーバーにpythonのマイクロフレームワークFlaskをインストールし、ログインフォームを作成しました。
ログインフォームは、会員専用CMS等WEBアプリケーションに必須の機能です。ログインフォームとmySQLの追加・更新・削除を学習することにより、一気にFlaskで自作できるアプリの道が見えてくるかと思います。ログインしたかどうかは、SESSIONで管理していきます。
mySQL関連の説明は、割愛しますので、前々回の記事XサーバーでFlask運用、WEBブラウザからmySQL操作その1select,insert,updateをご確認の上ご覧いただけますと幸甚です。

アプリケーション概要

ログインフォーム・アプリケーションの概要です。

ログインフォーム

下画像のユーザー、パスワードを入力し、「ログイン」をクリックします。

下画像 一致するユーザー情報がmySQLテーブルに存在した場合、ログインに成功した画面です。
ログアウトするには、「ログアウト」をクリックします。

下画像 ログアウトした画面です。セッションが削除されます。

 

ログインエラー

下画像 ユーザーあるいはパスワードが異なり、ログインできない画面です。

アップロードするファイル

ドメイン直下のpublic_htmlにtest2/デイレクトリを作成し、3つのファイルをアップロードしました。
.htaccessと、index.cgi、pythonファイルであるindex.pyです。index.cgiの属性は755にします。

また、HTMLのテンプレートファイルを利用しますので、デイレクトリtemplatesも作成し、その中に、HTMLのテンプレートファイルloginform.html、loginconf.html、logout.html、loginerror.htmlをアップロードしました。次にファイルの中身を説明していきます。

.htaccess

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

index.cgi

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

mySQLテーブル

下画像 user_tableを準備します

index.py

いよいよpythonファイルです。pythonファイルの全内容です。一行目のsessionは、セッションを使うので必要です。以下ファイル内の要所要所の解説です。

#0セッションを利用するのに必要です。app.secret_key = ‘aaa’

#1ログインフォーム ルートディレクトリになります。ブラウザでは URLとして ドメイン/test2 と打ったときの表示となります。
loginform.html内の部品、user,pwを/login_checkにPOSTします。

#2ログインのチェックページ パラメータuser,pwを変数に格納します。
user = request.form[‘user’]

pw = request.form[‘pw’]

#3ログインチェック関数login_postにuser,pwを引数として渡し、Trueであれば、/loginconfにページ遷移します。Falseであれば、loginerror.htmlを呼び出します。

#5ログインしていないのに、URLを指定された場合、ルートにページ遷移します。

#6ログインが成功した場合、loginconf.htmlを呼び出します。
#7loginconf.html内で、session[‘login_user’]を出力し、ログイン者名を表示します。

#8ログアウト セッションに格納された値を削除する

#9ログインしているかの判定する関数です。セッションにlogin_userが含まれていれば、True、そうでなければ、Falseを返します。

loginform.html

ログインフォームです。

loginconf.html

ログインに成功したら、呼び出されるHTMLファイルです。HTMLファイルの中で、session[‘login_user’]として、ログイン者名を表示しています。

logout.html

ログアウトしたら呼び出されるHTMLファイルです。

loginerror.html

ユーザーあるいはパスワードが間違いがあるときに呼び出されるHTMLファイルです。

セッションが使えると、CMSとか一気に自作できるようになります!

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