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

时间:2015-11-19 15:22:14

标签: python attributeerror flash-message

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

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 :(得分:0)

<强>尝试:

from user import loginValidate

if loginValidate(_email, _password) == True:

答案 1 :(得分:0)

虽然我不能确切地指出这种情况出现的地方,但错误本身似乎有一个明显的暗示。 Python认为“user”是一个函数,而不是一个模块。也许在其他地方定义了“用户”函数,而python实际上导入了