ちょっとPython --Flaskでlogin!

ログインやってみよう!

まず基本形、templatesの中のhtmlファイルを読み込ませます。

from flask import Flask
from flask import Flask,flash,redirect,render_template,request,session,abort
import os
import sys
# ------------------------------------------------------------------
app = Flask(__name__)
app.secret_key = 'hogehoge'
# ------------------------------------------------------------------
@app.route('/')
def home():
   if not session.get('logged_in'):
       return render_template('login.html')
   else:
       str_out = ""
       str_out += "<h2>こんにちは</h2>"
       str_out +=  "Hello Boss!<p />"
       str_out += "<a href='/logout'>Logout</a><br />"
#
       return str_out

if __name__ == "__main__":
   app.secret_key = os.urandom(12)
   app.run(debug=True,host='0.0.0.0', port=4000)

これでログインの画面は表示されます。

そしてログインするときのusername,passwordを決めていきます。失敗した場合はhome()に戻ります。

@app.route('/login', methods=['POST'])
def do_admin_login():
   if request.form['username'] == 'test' \
       and request.form['password'] == 'password':
       session['logged_in'] = True
   else:
       flash('wrong password!')
   return home()
# ------------------------------------------------------------------
@app.route("/logout")
def logout():
   session['logged_in'] = False
   return home()

全体です。

from flask import Flask
from flask import Flask,flash,redirect,render_template,request,session,abort
import os
import sys
# ------------------------------------------------------------------
app = Flask(__name__)
app.secret_key = 'hogehoge'
# ------------------------------------------------------------------
@app.route('/')
def home():
   if not session.get('logged_in'):
       return render_template('login.html')
   else:
       str_out = ""
       str_out += "<h2>Congraturation!</h2>"
       str_out +=  "Hello<p />"
       str_out += "<a href='/logout'>Logout</a><br />"
#
       return str_out
# ------------------------------------------------------------------
@app.route('/login', methods=['POST'])
def do_admin_login():
   if request.form['username'] == 'test' \
       and request.form['password'] == 'password':
       session['logged_in'] = True
   else:
       flash('wrong password!')
   return home()
# ------------------------------------------------------------------
@app.route("/logout")
def logout():
   session['logged_in'] = False
   return home()
# ------------------------------------------------------------------
if __name__ == "__main__":
   app.secret_key = os.urandom(12)
   app.run(debug=True,host='0.0.0.0', port=4000)

$python app.py と実行します。

こんな感じで表示されます。

usernameはtest,Passwordはpasswordと入れます。

log in成功!

この記事が気に入ったらサポートをしてみませんか?