2013-09-23 5 views
0

Это мой configurations.pyмодуля не имеет ошибок атрибута в Python

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

Какая ошибка вы получаете на 'sess = Session()'? Кроме того, что такое 'configurations'? Это не в вашем коде. –

+0

configurations.py - это имя файла кода, который я разместил здесь. У меня нет ошибок, когда я делаю sess = Session() – Hick

ответ

1

Я предполагаю, что библиотеки, которые вы используете Подписчиков Hte конвенцию,

  1. методы и атрибуты, начиная со строчной буквы
  2. Классы, начиная с заглавной буквы.

Помня об этом, ваши переменные не следуют этому соглашению (что не имеет значения, это не ошибка, но иногда это помогает в соответствии с условными обозначениями).

На ваш вопрос: sess ссылается на только что созданный объект класса Session(). Это может быть не так, когда вы импортируете. С другой стороны, Base, по-видимому, является методом, и поэтому вы используете метод.

И после повторного чтения кода: строка sess = Session() пытается создать новый объект сеанса класса - это не то, что вы хотите. Используйте sess = Session.

+0

Пробовал, но все равно не повезло. – Hick

+0

Как я уже сказал: sess-Variable может просто не существовать при импорте - поэтому вы получаете ошибку. Вы можете написать метод 'get_session()' и импортировать его - просто инкапсулируйте связанный с сеансом код в этом методе. – OBu

Смежные вопросы