Flask------訊息提示與異常處理
阿新 • • 發佈:2018-12-10
“”" 目標: 如何給html頁面傳遞變數? render_templates(“xxx.html”, message =“xxxxx”, code=“xxx”) 如何顯示給html傳遞的變數? {{ message }} # 404異常處理函式;@app.errorhandler(404)
# 丟擲異常: abort
“”"
from flask import Flask, request, render_template, redirect, flash, abort app = Flask(__name__) users = { 'root': 'redhat', 'westos': 'westos' } # 路由: http://ip:port @app.route('/') def index(): return render_template('index.html') # 需要用到POST方法; # 通過route裝飾器傳遞methods引數, 可以改變HTTP的方法; @app.route('/login', methods=['GET', 'POST']) def login(): # 1. 判斷http方法, 如果是post; if request.method == 'POST': # 2. 獲取前端使用者表單提交的資料; username = request.form['name'] passwd = request.form['passwd'] # 3. 判斷使用者名稱和密碼是否正確? if username in users: # 跳轉到另外一個頁面 if passwd == users[username]: return redirect('https://www.baidu.com/') else: message = "使用者密碼錯誤" return render_template('login.html', message=message) else: message = "使用者不存在, 請註冊" return render_template('login.html', message=message) # 4. 如果不是post方法, 使用者沒有提交資料, 則進入登入介面; else: return render_template('login.html') # 404異常處理函式;@app.errorhandler(404) @app.errorhandler(404) def not_found(e): return render_template('404.html') # 丟擲異常: abort @app.route('/users/<id>') def user(id): if int(id) in range(1, 10): return "hello user" + str(id) else: abort(404) if __name__ == '__main__': app.run(host='0.0.0.0', port=9003)