Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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
Python AppRegistryNotReady:应用程序不可用;还没装呢_Python_Django_Python 3.x_Django Models_Django Rest Framework - Fatal编程技术网

Python AppRegistryNotReady:应用程序不可用;还没装呢

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

我正在尝试使用pythonshell从数据库中查询数据<代码>设置。py包括:


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脚本。

有一个专门的命令。不需要做任何额外的设置。