Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 从其他py文件导入变量_Django - Fatal编程技术网

Django 从其他py文件导入变量

Django 从其他py文件导入变量,django,Django,我有一个包含数据库设置的.py文件(称之为connection.py)。我正在尝试将我的connection.py中包含的变量导入到我的views.py中。但是,没有导入变量 在my views.py中,我有: from connection import * def location_where_connection_variables_needed(request, some_id): conn = psycopg2.connect(conn_string) cursor = con

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

在my 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中的变量。但是变量没有导入到my views.py中。我将connection.py放在主文件夹中(即connection.py与我的应用程序文件夹位于同一文件夹中)。这是放这个的正确位置吗?还是我在做一些根本错误的事情

编辑: 我所说的不进口是指: 我没有收到任何错误,但是没有导入变量,因为views.py中的代码没有执行。如果我在my views.py中手动添加连接变量,一切正常

连接.py

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

您可以尝试使用全局变量而不是局部变量。把它当作

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

对于常量值,我通常将它们放入名为
constants.py的文件中,并在所有CAP中指定这些值,这是Python的惯例。因此,我将“connection.py”替换为“constants.py”,如下所示:


此外,请确保清除manage.py可能无法清除的任何.pyc文件。这有时会导致事情无法按预期进行。您也可以远离
import*
,因为它不是隐式的(您看不到正在导入的内容),而且很容易发生命名冲突。

我们应该猜“不工作”是什么意思吗?不工作的到底是什么?你有例外吗?某个id的值是空的吗?很抱歉。我的意思是,connection.py中的变量没有被导入views.py。我更新了上面的语言。解释“未导入”…值是否为空?是否出现异常?某些\u id的值不是空的。我没有收到任何错误,但是变量没有被导入,因为views.py中的代码没有执行。如果在my views.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()