0

这是我的配置文件.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 工作正常。

我哪里错了?

4

1 回答 1

1

我假设您使用的库遵循 hte 约定

  1. 方法和属性以小写字母开头
  2. 类以大写字母开头。

记住这一点,你的变量没有遵循这个约定(没关系,这不是一个错误,但有时它有助于遵循约定)。

提出您的问题: sess 指的是新创建的 Session() 类对象。导入时它可能不存在。另一方面, Base 似乎是一种方法 - 因此您正在使用一种方法。

在重新阅读您的代码之后: 该行sess = Session()尝试创建一个新的类会话对象 - 这不是您想要的。使用sess = Session.

于 2013-09-23T10:03:59.137 回答