我正在练习在django中使用mysql,并希望对我在settings.py中设置的数据库运行简单查询。我连接到数据库,可以在manage.py shell中运行查询。但是,当我在python文件中运行相同的代码时,它不起作用。有人知道为什么查询在python文件中不起作用吗?

query : 
from django.db import connections

def query(id):
    c = connections['default'].cursor()
    c.execute("SELECT * FROM `peptides_proteins_000005 WHERE protein_id=%s;",[id])
    rows = c.fetchone()
    return rows

print(query(4519))

shell中,我将获得一行返回我想要的信息但是,当在python文件中运行时,我收到此错误:

django .core.exceptions.ImproperlyConfigured:请求设置DATABASES,但未配置设置。您必须先定义环境变量DJANGO_SETTINGS_MODULE或在访问设置之前调用settings.configure()。

有没有办法在views.py或其他python文件中运行此命令而不使用inspectdb将我的数据库放入模型中?

分析解答

那么Django不会那样工作。 当您使用django shell执行指令集时,它知道在哪里查找db,因为settings.py文件由django .setup()在后台加载,负责填充应用程序注册表。 但是当你在一般的python shell中使用它时,它对settings.py文件一无所知。 它只知道执行当前的指令集。 它不会加载settings.py文件。