python - 为什么我的 Django 代码不能是 'Standalone Django scripts'

标签 python django

在查看我的代码之前,请参阅 http://www.b-list.org/weblog/2007/sep/22/standalone-django-scripts/

我想成为独立的 Django 脚本

这是我的代码:

from django.db import models
from djangosphinx.models import SphinxSearch,SphinxQuerySet


import os
os.environ["DJANGO_SETTINGS_MODULE"] = "sphinx_test.settings"

from django.core.management import setup_environ
from sphinx_test import settings

setup_environ(settings)

DJANGO_SETTINGS_MODULE=sphinx_test.settings

class File(models.Model):
    name = models.CharField(max_length=200)
    tags = models.CharField(max_length=200) 

    objects = models.Manager()
    search  = SphinxQuerySet(index="test1")


import datetime


class Group(models.Model):
    name = models.CharField(max_length=32)

class Document(models.Model):
    group       = models.ForeignKey(Group)
    date_added  = models.DateTimeField(default=datetime.datetime.now)
    title       = models.CharField(max_length=32)
    content     = models.TextField()

    search      = SphinxQuerySet(File,index="test1")

    class Meta:
        db_table = 'documents'

这是回溯:

Traceback (most recent call last):
  File "D:\zjm_code\sphinx_test\models.py", line 1, in <module>
    from django.db import models
  File "D:\Python25\Lib\site-packages\django\db\__init__.py", line 10, in <module>
    if not settings.DATABASE_ENGINE:
  File "D:\Python25\Lib\site-packages\django\utils\functional.py", line 269, in __getattr__
    self._setup()
  File "D:\Python25\Lib\site-packages\django\conf\__init__.py", line 38, in _setup
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE)
ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined.

最佳答案

用于设置 django 设置模块的代码必须位于任何与 django 相关的代码之前,包括脚本顶部的 django 数据库导入。

关于python - 为什么我的 Django 代码不能是 'Standalone Django scripts',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2211624/

相关文章:

python - 如何在python,django中将url解码为路径

python - 使用 Django 包 facepy : [15] (#15) This method must be called with an app access_token 创建一个 facebook 通知

python django 1.4 如何设置两个 WWW-Authenticate http header

python - 我如何跟踪特定帖子的链接并从该帖子中抓取数据

python - pyCharm 和 django 管理员

python - 在 Twisted 中使用 DeferredQueue 进行任务间通信

python - 使用 Google Admin SDK API 的示例 (python)

python - 在 pandas Dataframe 的每一行中搜索字符串并返回找到的列名称

python - 将数据框列转换为 float

javascript - 在发布到 Django View 之前将复选框 'on' 转换为 bool 值