利用 Flask和 Sqlite模塊,編寫(xiě)相應(yīng)的 Python程序與網(wǎng)頁(yè)代碼,來(lái)模擬用戶(hù)登錄驗(yàn)證過(guò)程。功能是:運(yùn)行 Python程序,啟動(dòng)瀏覽器并輸入相應(yīng)網(wǎng)址,在網(wǎng)頁(yè)中輸入用戶(hù)名、密碼,與數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行比對(duì),若正確則在瀏覽器中顯示成功信息,否則顯示“用戶(hù)名或密碼錯(cuò)
誤!”。存儲(chǔ)用戶(hù)名、密碼的數(shù)據(jù)表中共有三個(gè)字段,依次表示序號(hào)、用戶(hù)名、密碼。input.html網(wǎng)頁(yè)與 success.html網(wǎng)頁(yè)內(nèi)容如下:
<html><head><title>輸入賬號(hào)密碼</title></head><body> <formaction=“/deal_request“method=“get“> 請(qǐng)輸入賬號(hào):<inputtype=“text“name=“usr“><br> 請(qǐng)輸入密碼:<inputtype=“password“name=“psd“><br><inputtype=“submit“value=“提交“/> </form> </body></html> |
<html><head><title>W(wǎng)elcome</title></head> <body> <h1>登錄成功?。?h1><br> <h1>歡迎你:①</h1><br> </body></html> |
編寫(xiě)的 Python程序如下:
fromflaskimportFlask,render_template,request
importsqlite3
②=Flask( ( ?。﹏ame ( ?。?br />@app.route('/')
definput( ?。?br />returnrender_template('input.html')
@app.route('/deal_request',methods=['GET'])
defdeal_request( ):
get_usr=request.args.get('usr')
get_psd=request.args.get('psd')
ifcheck(get_usr,get_psd):
returnrender_template('succes.html',name=get_usr)
else:
return'用戶(hù)名或密碼錯(cuò)誤!'
defcheck(name,psd):
db=sqlite3.connect('login.db')
cur=
③#創(chuàng)建游標(biāo)對(duì)象
cur.execute('select*fromusers')
data=cur.fetchall( ?。?br />forrecindata:#比對(duì)用戶(hù)名與密碼
ifrec[1]==nameandrec[2]==psd:
returnTrue
else:
returnFalse
if( )name( ?。?='( )main( ?。?:
app.run(host='127.0.0.1',port=5000,debug=False)
請(qǐng)完成下列題目:
(1)在瀏覽器中輸入地址:http://127.0.0.1:5000,則訪(fǎng)問(wèn)的網(wǎng)頁(yè)是
input.html
input.html
。
(2)若登錄成功后,在瀏覽器中文字“歡迎你:”的后面顯示當(dāng)前用戶(hù)名,則劃線(xiàn)①處的代碼是
{[name]}
{[name]}
。
(3)要實(shí)現(xiàn)上述功能,完善劃線(xiàn)②、③處代碼。
(4)若本機(jī)IP地址為 192.168.0.1,若要使同網(wǎng)段內(nèi)其他計(jì)算機(jī)可以訪(fǎng)問(wèn)上述服務(wù),則需將加框處的IP地址改為
192.168.0.1
192.168.0.1
。