日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Flask实战2问答平台-完成登录注册功能

發(fā)布時(shí)間:2025/3/21 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Flask实战2问答平台-完成登录注册功能 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本來可以提前完成這篇的,結(jié)果測試時(shí)發(fā)現(xiàn)了一些問題,稍后將會(huì)提到.
上篇中我們已經(jīng)完成了登錄注冊(cè)的界面,現(xiàn)在具體完成其具體功能.

1.注冊(cè)功能

因?yàn)樽?cè)成功后,才能登錄,我們?cè)谥鱬y文件中添加如下

@app.route('/register',methods = ['GET','POST']) def register():if request.method == 'GET':return render_template('register.html')else:#request.form.get()獲取用戶表單輸入,通過nametelephone = request.form.get('telephone')username = request.form.get('username')password1 = request.form.get('password1')password2 = request.form.get('password2')#查詢數(shù)據(jù)庫中手機(jī)號(hào)碼是否已經(jīng)存在user = User.query.filter(User.telephone == telephone).first()if user:return '該手機(jī)號(hào)已被注冊(cè),請(qǐng)更換手機(jī)號(hào)碼'# flash('該手機(jī)號(hào)已被注冊(cè),請(qǐng)更換手機(jī)號(hào)碼')# return render_template('register.html')else:#如果用戶兩次密碼不一致,則進(jìn)行提醒if password1 != password2:return '兩次密碼不相等,請(qǐng)核對(duì)后再填寫'else:#在數(shù)據(jù)庫中添加注冊(cè)的數(shù)據(jù)user = User(telephone = telephone,username = username,password = password1)db.session.add(user)db.session.commit()return redirect(url_for('login'))

2.登錄功能

同樣在主py文件中添加

@app.route('/login',methods = ['GET','POST']) def login():if request.method == 'GET':return render_template('login.html')else:telephone = request.form.get('telephone')password = request.form.get('password')user = User.query.filter(User.telephone == telephone,User.password == password).first()if user:session['user_id'] = user.id #如果需要31天內(nèi)不需要登錄,則進(jìn)行如下一行設(shè)置session.permanent = Truereturn redirect(url_for('index'))else:return '手機(jī)號(hào)碼或者密碼錯(cuò)誤,請(qǐng)確認(rèn)后再登錄'

3.注銷功能

注銷需要實(shí)現(xiàn)的是一下兩圖中的切換

主py文件中添加如下代碼

@app.route('/logout') def logout():#session.pop['user_id'] 或者del session['user_id']# 或者# session.clear()return redirect(url_for('login'))

然后更改base.html,更改后如下,當(dāng)時(shí)出錯(cuò)的原因是<li><a href="{{url_for('logout')}}">注銷</a></li> 這句出錯(cuò)了,導(dǎo)向了login函數(shù),應(yīng)該是logout函數(shù)才對(duì),因?yàn)閘ogout才把session清除了,也就是說刪除了當(dāng)前用戶的登錄狀態(tài)

<ul class="nav navbar-nav navbar-right">{% if user%}<li><a href="#">{{user.username}}</a></li><!-- 之前這里url_for倒錯(cuò)了位置,原先成了login --><li><a href="{{url_for('logout')}}">注銷</a></li>{% else %}<li><a href="{{url_for('login')}}">登錄</a></li><li><a href="{{url_for('register')}}">注冊(cè)</a></li>{% endif %}</ul>

總結(jié)

以上是生活随笔為你收集整理的Flask实战2问答平台-完成登录注册功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。