2013-08-20 4 views
0

데이터베이스 설정이 포함 된 .py 파일이 있습니다 (connection.py라고 함). 내 connection.py에 포함 된 변수를 내 views.py로 가져 오려고합니다. 그러나 변수는 가져 오지 않습니다. 내 views.py에서다른 py 파일에서 변수 가져 오기

나는이 :

from connection import * 

def location_where_connection_variables_needed(request, some_id): 

conn = psycopg2.connect(conn_string) 
cursor = conn.cursor() 

내가 다음 내 views.py 스크립트 connection.py의 변수를 사용합니다. 그러나 변수는 내 views.py로 가져 오지 않습니다. 나는 connection.py를 메인 폴더에 두었다. (즉, connection.py는 내 app의 폴더와 같은 폴더에있다.) 이것은 이것을 넣기에 적합한 곳입니까? 아니면 근본적으로 잘못된 것을하고 있습니까?

편집 : 내가 가져 오지 않음을 의미하는 것 : 전혀 오류가 없지만 views.py의 코드가 실행되지 않아 변수를 가져올 수 없습니다. 내 views.py에 연결 변수를 수동으로 추가하면 모든 것이 잘 동작합니다.

Connection.py

conn_string = "host='localhost' dbname='test' user='postgres' password='pwd'" 
+2

"작동하지 않는다"는 것이 무엇인지 추측해야합니까? –

+0

정확히 작동하지 않는 것은 무엇입니까? ImportError 예외가 발생합니까? some_id의 값이 비어 있습니까? – Brandon

+0

죄송합니다. 나는 connection.py의 변수가 views.py로 임포트되지 않는다고 말하고자한다. 위의 언어를 업데이트했습니다. – nlr25

답변

2

으로 사용합니다. 또한,

# constants.py 
CONN_STRING = "host='localhost' dbname='test' user='postgres' password='pwd'" 


# views.py 
from constants import CONN_STRING 

def location_where_connection_variables_needed(request, some_id): 
    conn = psycopg2.connect(CONN_STRING) 
    cursor = conn.cursor() 

을 manage.py에 의해 삭제하기되지 않을 수 있습니다 어떤 된 .pyc 파일을 삭제해야합니다 : 그래서, 예 : "constants.py"와 "connection.py"를 대체 할 것이다. 때로는 일이 예상대로 작동하지 않을 수도 있습니다. 당신은 암시 적이 아니기 때문에 (당신이 무엇을 가져올 지 알 수 없기 때문에) import *에서 떨어져있을 수도 있고, 명명 충돌을 일으키기 쉽습니다.

0

당신은 대신 로컬 하나의 전역 변수를 시도 할 수 있습니다. 나는 일반적으로 constants.py라는 파일에 그 넣어 파이썬 관례 모두 대문자에 해당 값을 지정

상수 값으로
global conn_string = "host='localhost' dbname='test' user='postgres' password='pwd'" 
관련 문제