这是我的configurations.py
import sqlalchemy
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import psycopg2
db_username = 'postgres'
db_password = 'postgres'
db_host = 'localhost'
db_name = 'testdb6'
engine = create_engine('postgresql+psycopg2://' + db_username + ':' + db_password + '@' + db_host +'/' + db_name,echo=True)
Session = sessionmaker()
Session.configure(bind=engine)
sess = Session()
Base = declarative_base()
当我尝试导入sess变量时出错。
说,在一个单独的模块中,我尝试做configurations.sess,我得到一个sess不是属性错误。但是configurations.Base工作正常。
我哪里错了?
答案 0 :(得分:1)
我假设您使用的库遵循惯例
记住这一点,你的变量没有遵循这个约定(这没关系,它不是错误,但有时它有助于遵循约定。)
来到你的问题: sess指的是Session()类的新创建对象。在导入时它可能不存在。 另一方面,Base似乎是一种方法 - 因此你正在研究一种方法。
重新阅读代码之后:行sess = Session()
尝试创建一个新的类会话对象 - 这不是你想要的。使用sess = Session
。