0

我有一个包含数据库设置的 .py 文件(称为 connection.py)。我正在尝试将我的 connection.py 中包含的变量导入到我的 views.py 中。但是,变量没有被导入。

在我的views.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 与我的应用程序文件夹位于同一文件夹中)。这是放置这个的正确位置吗?还是我在做其他根本错误的事情?

编辑:我的意思是没有被导入:我根本没有收到任何错误,但变量没有被导入,因为views.py中的代码没有执行。如果我在views.py 中手动添加连接变量,一切正常。

连接.py

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

2 回答 2

2

对于常量值,我通常将它们放入一个名为的文件constants.py中,并在所有大写字母中指定这些值,这是 Python 的惯例。所以,我会用“constants.py”替换“connection.py”:

# 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 文件。这有时会导致事情无法按预期工作。您也可以远离,import *因为它不是隐含的(您看不到要导入的内容)并且很容易遇到命名冲突。

于 2013-08-20T20:44:01.253 回答
0

您可以尝试使用全局变量而不是本地变量。用它作为

global conn_string = "host='localhost' dbname='test' user='postgres' password='pwd'"
于 2013-08-20T20:20:12.677 回答