【发布时间】:2020-12-31 13:10:57
【问题描述】:
我遇到了错误“模块”对象不可调用的问题。 我正在使用这个 pyAesCrypt 库来加密/解密密码。
这里我定义了一个类 User 来存储在数据库中加密的密码,运行应用程序。 然后我需要从数据库中查询加密密码并解密,将其传递给变量。 所以这是我定义的类:
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
#from flask_bcrypt import Bcrypt
import pyAesCrypt
app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///data-users2.sqlite"
db = SQLAlchemy(app)
class User(db.Model):
__tablename__ = "user"
id = db.Column(db.Integer(), primary_key=True, autoincrement=True)
username = db.Column(db.String(64), unique=True)
pwd = db.Column(db.LargeBinary(), unique=True)
def __init__(self, id, username, pwd):
p = pyAesCrypt(encoding=False)
self.id = id
self.username = username
self.pwd = p.encrypt("password",pwd)
这里我从db查询密码并解密,但是我调用模块pyAesCrypt的地方似乎有问题,错误如下。任何人都可以看到任何异常?如果是,您能否以正确的方式编辑我的代码?谢谢。
import pyAesCrypt
#get FTP pwd
user = db.session.query(User).filter_by(username="ita_itf").first()
p_decrypt = pyAesCrypt(encoding=False)
DICP_FTP_DESTINATION_PSW = p_decrypt.decrypt("password",user.pwd)
错误:
p_decrypt = pyAesCrypt(encoding=False)
TypeError: 'module' object is not callable
【问题讨论】:
-
可能
pyAesCrypt在模块内有同名函数,有点像datetime.datetime()。所以可能有点像这样:from pyAesCrypt import pyAesCrypt
标签: python python-3.x python-2.7 flask flask-sqlalchemy