Skip to main content
 首页 » 编程设计

python之从新脚本访问 Django 模型

2025年05月04日27qq号

关于如何在项目外使用django模型,我看到了很多答案。但我没有成功。我正在尝试实现 this回答但我得到一个错误。我在我的应用程序中创建了一个新文件“script.py”。

脚本.py

from django.conf import settings 
settings.configure( 
    DATABASE_ENGINE = 'sqlite3', 
    DATABASE_NAME = '/home/shivam/study/Python/automation/project/db.sqlite3', 
    DATABASE_USER = '', 
    DATABASE_PASSWORD = '', 
    DATABASE_HOST = '', 
    DATABASE_PORT = '', 
    TIME_ZONE = 'America/New_York', 
) 
from models import * 

当我运行这个脚本时,出现错误。

Traceback (most recent call last): 
  File "script.py", line 11, in <module> 
    from models import * 
  File "/home/shivam/study/Python/automation/project/videos/models.py", line 11, in <module> 
    class video(models.Model): 
  File "/home/shivam/study/Python/automation/env/local/lib/python2.7/site-packages/django/db/models/base.py", line 105, in __new__ 
    app_config = apps.get_containing_app_config(module) 
  File "/home/shivam/study/Python/automation/env/local/lib/python2.7/site-packages/django/apps/registry.py", line 237, in get_containing_app_config 
    self.check_apps_ready() 
  File "/home/shivam/study/Python/automation/env/local/lib/python2.7/site-packages/django/apps/registry.py", line 124, in check_apps_ready 
    raise AppRegistryNotReady("Apps aren't loaded yet.") 
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. 

有人可以帮我解决这个问题吗?

请您参考如下方法:

您需要的是可导入的设置。

import os 
import django 
os.environ["DJANGO_SETTINGS_MODULE"] = 'project.settings' 
django.setup() 
from .models import  

另一种通过 django shell 调用脚本的方法:

python manage.py shell < script.py