簡體   English   中英

Python:無法從導入的模塊調用方法

[英]Python: Cannot call method from imported module

我有一個簡單的功能可以登錄用戶。它首先確認用戶詳細信息是否正確;然后確認用戶詳細信息是否正確。

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)

任何幫助表示贊賞!

嘗試:

from user import loginValidate

和:

if loginValidate(_email, _password) == True:

盡管我無法確切指出發生的地方,但錯誤本身似乎足夠清晰。 Python認為“用戶”是一個函數,而不是一個模塊。 也許在其他地方定義了“用戶”功能,而python實際上將其導入

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM