python - 如何修复烧瓶登录记住我不工作
问题描述
html代码
<input type="checkbox" name="remember_me" checked class="custom-control-input" id="remember_me">
<label class="custom-control-label" for="remember_me">Remember me</label>
下面是路由功能
@app.route('/admin_login', methods=['POST', 'GET'])
def admin_login():
if current_user.is_authenticated:
return redirect(url_for('index'))
if request.method == 'POST':
username = request.form['username']
password = request.form['password']
remember_me = request.form['remember_me']
admin = Admin.query.filter_by(username=username).first()
if admin is None or not admin.check_password(password):
flash('Invild password or username!')
return redirect(url_for('admin_login'))
login_user(admin, remember=remember_me)
flash('Logged in successfully.')
return redirect(url_for('index'))
return render_template('login.html', title='Login')
如果我无法选中复选框,则会出现以下错误
我试图解决这个错误我需要帮助!!!
werkzeug.exceptions.BadRequestKeyError
werkzeug.exceptions.BadRequestKeyError: 400 Bad Request: The browser (or proxy) sent a request that this server could not understand.
KeyError: 'remember_me'
解决方案
当复选框未选中时,remember_me 的返回值为None
. 要处理这个问题,而不是:
remember_me = request.form['remember_me']
利用:
remember_me = request.form.get('remember_me')
推荐阅读
- perl - perl grep 匹配来自哈希表的变量
- python - 在 Tensorflow Graph 的输入层之前添加 base64 解码层
- android - 如何在 C# 中以编程方式列出来自设备(iOS/Android)的 SMS 对话?
- python - 使用 Selenium 时是否需要设置等待时间?
- flutter - 如何将小部件添加到 Sliver 应用栏区域?
- pointers - 是否有通用的 Rust 指针类型可以存储任何其他类型的指针,类似于 C 的 void *?
- html - 为什么div里面有空格?
- ios - 保存到相机胶卷后从路径加载特定图像
- android - 我正在尝试使用 ViewPager 和 picasso 将来自 firebase 的图像显示到轮播视图中,但图像没有进入视图
- sql - 如何在 sqlite 中对具有限制的 group_concat 子组进行分组?