ちょっと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成功!