flask(六)優化登入-實現記住密碼功能
阿新 • • 發佈:2022-01-18
修改admin/views.py中login方法::
def login(): error = None if request.method == 'GET': return render_template('admin/login.html') else: form=LoginForm(request.form) if form.validate(): user = request.form.get('username') pwd = request.form.get('password') online = request.form.get('online') captcha=request.form.get('captcha') if session.get('image').lower() != captcha.lower(): return render_template('admin/login.html', message="驗證碼不對!") else: users=Users.query.filter_by(username=user).first() if users: if user == users.username and users.check_password(pwd): session['user_id'] = users.uid#使用者id存於session #print(session['user_id']) # print("密碼對!") if online: # 如果選擇了記住我 session.permanent = True bp.permanent_session_lifetime = timedelta(days=10) return redirect(url_for('admin.index')) else: #print("使用者名稱或密碼錯!") error="使用者名稱或密碼錯!" return render_template('admin/login.html', message=error) else: return render_template('admin/login.html', message="別試了,沒有此使用者!") else: return render_template('admin/login.html', message=form.errors)
修改模板檔案admin/login.html:
<div class="row cl">
<div class="formControls col-xs-8 col-xs-offset-3">
<label for="online">
<input type="checkbox" name="online" id="online" value="1">
記住密碼</label>
</div>
</div>