python之web開發:flask實現登陸

前臺頁面

在前臺頁面中只需創建基本的表單內容,method使用get,登錄和註冊的action分別為/login、/registuser,代碼如下所示:

登陸

<code>


<title>


<link>




/<code>

註冊

<code>


<title>


<link>




/<code>

導入模塊

python使用Flask需要導入Flask模塊,如果沒有這個模塊就參見前面的鏈接去安裝。使用mysql需要導入pymysql模塊,這個具體是什麼,請自行百度。總之,python需要用到特定的模塊的時候,需要去導入模塊,本例具體導入的內容如下所示:

<code>#導入數據庫模塊
import pymysql
#導入Flask框架,這個框架可以快捷地實現了一個WSGI應用

from flask import Flask
#默認情況下,flask在程序文件夾中的templates子文件夾中尋找模塊
from flask import render_template
#導入前臺請求的request模塊
from flask import request
import traceback
#傳遞根目錄
app = Flask(__name__)/<code>

路由訪問靜態文件

在Flask創建服務器後,照著前面圖片的文件目錄,通過下面的路由就能通過服務器訪問靜態的html文件,代碼如下所示:

<code>#默認路徑訪問登錄頁面
@app.route('/')
def login():
return render_template('login.html')

#默認路徑訪問註冊頁面
@app.route('/regist')
def regist():
return render_template('regist.html')/<code>

此時在瀏覽器中通過localhost:5000(Flask默認端口為5000)就能訪問login.html文件,localhost:5000/register就能訪問register.html。

處理前臺請求及對數據庫進行操作

跟所有的web服務思路一樣,獲取前臺的請求,根據不同的請求路由執行不同的函數內容。這裡以註冊為例,當表單填寫完後,點擊註冊按鈕,數據向後臺請求,請求路由為/registuser。python根據相對應的路由執行函數,這裡函數處理的內容是把前臺的用戶名和密碼插入到數據庫中(前提是已經在數據庫中創建好了user表)。插入成功就跳轉到登錄頁面,插入失敗就返回註冊失敗的內容。登錄的邏輯內容也類似,就不再細述,具體代碼如下:

<code>#獲取註冊請求及處理
@app.route('/registuser')
def getRigistRequest():
#把用戶名和密碼註冊到數據庫中
db = pymysql.connect("localhost","root","","DB" )
# 使用cursor()方法獲取操作遊標
cursor = db.cursor()
# SQL 插入語句
sql = "INSERT INTO user(user, password) VALUES ("+request.args.get('user')+", "+request.args.get('password')+")"
try:
# 執行sql語句
cursor.execute(sql)
# 提交到數據庫執行
db.commit()
#註冊成功之後跳轉到登錄頁面
return render_template('login.html')
except:
#拋出錯誤信息
traceback.print_exc()
# 如果發生錯誤則回滾
db.rollback()
return '註冊失敗'
# 關閉數據庫連接
db.close()/<code>
<code>#獲取登錄參數及處理
@app.route('/login')
def getLoginRequest():
#查詢用戶名及密碼是否匹配及存在
db = pymysql.connect("localhost","root","","DB" )
# 使用cursor()方法獲取操作遊標
cursor = db.cursor()
# SQL 查詢語句
sql = "select * from user where user="+request.args.get('user')+" and password="+request.args.get('password')+""
try:
# 執行sql語句

cursor.execute(sql)
results = cursor.fetchall()
print(len(results))
if len(results)==1:
return '登錄成功'
else:
return '用戶名或密碼不正確'
# 提交到數據庫執行
db.commit()
except:
# 如果發生錯誤則回滾
traceback.print_exc()
db.rollback()
# 關閉數據庫連接
db.close()

if __name__ == '__main__':
app.run(debug=True)/<code>

此例僅僅是為完成python作為web服務器的流程。詳細功能實現請自行處理。

完整代碼地址請關注後私信:"flask登陸" 進行獲取

本文是“明哥陪你學Python”系列章節之一,如果你對Python有更多興趣,或有問題,可以私信與明哥聯繫,我會陪你一起解決,其它相關章節可以從首頁中的“明哥陪你學Python”列表進行查看。

最後:如果你正在學習Python的路上,或者準備打算學習Python、明哥會陪著你陪你一起共同進步!

手打不易,有用的話,請記得關注轉發。


分享到:


相關文章: