Python烧瓶数据库检索

我在使用flask创建一个登录页面。在这里,我使用sql_alchemy检索电子邮件和密码,但它显示错误不能连接str与int在 if userdetails['Email'] == username and userdetails['Password'] == userpass.

@app.route('/login/', methods=['POST', 'GET'])
def login():
    if 'user' in session and session['user'] == params['admin_user']:
        return render_template('domain.html')
       if request.method == 'POST':
            username = request.form.get('email')
            userpass = request.form.get('password')
            userdetails = User.query.filter_by(Email=username)

            if len(str(userdetails)) > 0:
                if userdetails['Email'] == username and userdetails['Password'] == userpass:
                    session['user'] = username
                    flash('Welcome' + session['Name'] + '! You have been successfully logged in', 'success')
                    return render_template('domain.html')
                else:

                    flash('Password does not match.', 'danger')
                    return render_template('user_login.html')
            else:
                flash('User not found.', 'danger')
                return render_template('user_login.html')
        return render_template('user_login.html')

解决方案:

你能不能试着添加 .one() 到了

userdetails = User.query.filter_by(Email=username)

它应该是这样的。userdetails = User.query.filter_by(Email=username).one()

如果我没有弄错的话 filter_by 返回一个结果列表,而不是结果本身。

编辑: 我看到你也使用 userdetails 来检查查询中是否有匹配的结果。

那么我建议你在查询端保持原样,并在if语句下添加另一个变量来检查结果是否匹配。最后的版本应该是这样的。

@app.route('/login/', methods=['POST', 'GET'])
def login():
    if 'user' in session and session['user'] == params['admin_user']:
        return render_template('domain.html')
       if request.method == 'POST':
            username = request.form.get('email')
            userpass = request.form.get('password')
            userdetails = User.query.filter_by(Email=username)

            if userdetails.count() > 0:
                user = userdetails.one()
                if user['Email'] == username and user['Password'] == userpass:
                    session['user'] = username
                    flash('Welcome' + session['Name'] + '! You have been successfully logged in', 'success')
                    return render_template('domain.html')
                else:

                    flash('Password does not match.', 'danger')
                    return render_template('user_login.html')
            else:
                flash('User not found.', 'danger')
                return render_template('user_login.html')
        return render_template('user_login.html')

给TA打赏
共{{data.count}}人
人已打赏
未分类

使用PHP在MYSQL数据库中插入表单数据。

2022-9-22 8:15:20

未分类

问题:在gpu上训练pytorch模型。

2022-9-22 8:15:22

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索