1 HTTP請求方式
TTP請求的方法:
GET:
1). 獲取頁面信息;
2). 可以提交數據信息;但是數據不安全;
http://127.0.0.1:5000/login2/?username=westos&password=westos
POST:
提交服務端需要的請求信息;有利於數據的安全性;
PUT:
DELETE:
2 render_template
html文件是構建網站的基石,一般情況,在路由訪問時,不會直接將html文件內容直接返回,而是將html文件保存到當前的templates目錄中,然後通過render_template方法調用。默認情況下,flask在程序文件夾中的templates子文件夾中尋找模版
@app.route('/login/')
def login():
return render_template('login.html')
3 重定向redirect
當用戶訪問某些網頁時,如果他還沒登錄,我們往往會把網頁重定向到登錄頁面,Flask 提供了redirect對象對其進行處理,如果用戶註冊了,我們將網頁重定向到首頁。代碼示例如下:
@app.route('/login2/')
def login2():
# 獲取用戶輸入的用戶名
username = request.args.get('username', None)
password = request.args.get('password', None)
# 邏輯處理, 用來判斷用戶和密碼是否正確;
if username == 'root' and password == 'redhat':
# 重定向到指定路由;
return redirect('/')
# return "登錄成功"
else:
return "登錄失敗"
4 html 文件中的form表單
設置登錄操作界面及form表單。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>用戶登錄</h1>
<!--將form表單提交的數據傳輸給/login2/這個路由-->
<form action="/login2/">
<!--相當於key值, 輸入的數據相當於value值;-->
用戶: <input type="text" placeholder="用戶名" name="username"><br/>
密碼: <input type="password" placeholder="密碼" name="password"><br/>
<input type="submit" value="登錄">
</form>
</body>
</html>
如上html代碼,可在form表單中對錶單中的數據進行路由選擇並提交路由。
5 登錄驗證實現完整代碼及結果展示
from flask import Flask, render_template, request, redirect
app=Flask(__name__)
@app.route('/')
def index():
return "<h1>主頁</h1>"
@app.route('/login/')
def login():
return render_template('login.html')
@app.route('/login2/')
def login2():
# 獲取用戶輸入的用戶名
username = request.args.get('username', None)
password = request.args.get('password', None)
# 邏輯處理, 用來判斷用戶和密碼是否正確;
if username == 'root' and password == 'redhat':
# 重定向到指定路由;
return redirect('/')
# return "登錄成功"
else:
return "登錄失敗"
if __name__ == '__main__':
app.run()
運行程序進入登錄頁面:
輸入用戶名和密碼登錄:
點擊登錄進入主頁:
後臺顯示: