Python AppRegistryNotReady:应用程序不可用;还没装呢
我正在尝试使用pythonshell从数据库中查询数据<代码>设置。py包括:Python AppRegistryNotReady:应用程序不可用;还没装呢,python,django,python-3.x,django-models,django-rest-framework,Python,Django,Python 3.x,Django Models,Django Rest Framework,我正在尝试使用pythonshell从数据库中查询数据设置。py包括: import django django.setup() ... INSTALLED_APPS = [ 'django.contrib.contenttypes', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.sessions', 'django.contrib.messages', 'dj
import django
django.setup()
...
INSTALLED_APPS = [
'django.contrib.contenttypes',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'products.apps.ProductsConfig',
'users.apps.UsersConfig',
'crispy_forms',
]
打开Python shell时,我执行以下操作:
> from django.conf import settings
> settings.configure()
然后我尝试导入模型:
> from products.models import Product
但是,Python返回:
django.core.exceptions.AppRegistryNotReady:尚未加载应用程序
我试过了,也试过了
编辑:使用django.setup()
django.core.exceptions.ImpropertlyConfigured:密钥设置不能为空
正如您所注意到的,django尚未正确初始化,因此您将收到此消息
正如@davit tovmasyan提到的,有一个内置的manage.py
命令可以在正确的上下文中打开django shell:
./manage.py shell
此外,如果您安装了一个非常有用的命令,该命令将导入您的所有模型以及常见导入:
$ ./manage.py shell_plus
# Shell Plus Model Imports
from django.contrib.admin.models import LogEntry
from project.my_app.models import Model1, Model2
# ...etc, for all django and project apps
# Shell Plus Django Imports
from django.core.cache import cache
from django.conf import settings
# ...
>>> type your python here
如果要运行自己的脚本,例如在temp.py
中,则可以将manage.py代码复制到新文件中并直接运行:
import os
import django
# these must be before any other imports of django app code/models
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "project.settings")
django.setup()
from my_app.models import Product
print(Product.objects.all())
# at the command line:
$> chmod +x temp.py
$> ./tmp.py
此外,还有scripts
文件夹,您可以在其中使用run()
方法添加简单的python脚本。有一个专门的命令。不需要做任何额外的设置。