Python:无法调用导入模块的方法

3 投票
2 回答
2248 浏览
提问于 2025-05-10 15:40

我有一个简单的函数用来登录用户。它首先确认用户的详细信息是否正确;

import user    


@app.route("/login/", methods=['POST', 'GET'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    else:
        _email = request.form['email']
        _password = request.form['password']
        if user.loginValidate(_email, _password) == True:
            session['username'] = user.getUserName(_email)
            session['loggedin'] = True
            return redirect(url_for('home'))
        else:
            flash('Email or password incorrect!')
            return render_template('login.html')

但是不知道为什么,当我尝试调用 loginValidate 时,出现了一个错误,提示 'function' object has no attribute loginValidate

这个模块确实有 loginValidate,它会返回 TrueFalse,所以我不明白问题出在哪里。

loginValidate(在 user 模块中):

def loginValidate(this_email, this_password):
    db = sqlite3.connect('data')
    cursor = db.cursor()
    cursor.execute("SELECT password FROM users WHERE email = ?", (this_email,))
    row = cursor.fetchone()
    hash = row[0]
    db.close()
    return hash == bcrypt.hashpw(this_password, hash)

任何帮助都非常感谢!

相关文章:

  • 暂无相关问题
暂无标签

2 个回答

0

虽然我不能确切指出这个错误是从哪里来的,但这个错误本身似乎给了我们一个明确的提示。Python认为“user”是一个函数,而不是一个模块。可能在其他地方定义了一个“user”函数,所以Python实际上是导入了那个函数。

0

尝试:

from user import loginValidate

还有:

if loginValidate(_email, _password) == True:

撰写回答