gpt4 book ai didi

django - 在独立脚本中使用 Django ORM(再次)

转载 作者:行者123 更新时间:2023-12-04 05:37:15 24 4
gpt4 key购买 nike

我正在尝试在一些独立的屏幕抓取脚本中使用 Django ORM。我知道以前有人问过这个问题,但我无法为我的特定问题找到一个好的解决方案。

我有一个定义模型的 Django 项目。我想做的是在我的抓取脚本中使用这些模型和 ORM。我的目录结构是这样的:

project
scrape
#scraping scripts
...
test.py
web
django_project
settings.py
...
#Django files

我尝试在 project/scrape/test.py 中执行以下操作:
print os.path.join(os.path.abspath('..'), 'web', 'django_project')
sys.path.append(os.path.join(os.path.abspath('..'), 'web', 'django_project'))
print sys.path
print "-------"
os.environ['DJANGO_SETTINGS_MODULE'] = 'django_project.settings'
#print os.environ
from django_project.myapp.models import MyModel
print MyModel.objects.count()

但是,我得到一个 ImportError当我尝试运行 test.py 时:
Traceback (most recent call last):
File "test.py", line 12, in <module>
from django_project.myapp.models import MyModel
ImportError: No module named django_project.myapp.models

我围绕这个问题找到的一个解决方案是创建一个指向 ../web/govcheck 的符号链接(symbolic link)。在刮文件夹中:
:scrape rmanocha$ ln -s ../web/govcheck ./govcheck

有了这个,我就可以运行 test.py 就好了。但是,这似乎是一种 hack,更重要的是,它不是很便携(我必须在运行此代码的任何地方创建此符号链接(symbolic link))。

所以,我想知道是否有人对我的问题有更好的解决方案?

最佳答案

找到了一种简单的方法来重用现有 django 应用程序的控制台脚本设置:

from django.core.management import setup_environ

import settings
setup_environ(settings)

from myapp.models import Object

for o in Object.objects.all():
print o

关于django - 在独立脚本中使用 Django ORM(再次),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2444879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com