【发布时间】:2018-01-17 15:25:33
【问题描述】:
我是 Django 新手,想在我的脚本中使用它的 ORM,而不需要运行整个 Django。我正在摸索如何配置它。在 StackOverflow 上的搜索没有帮助,因为答案没有显示完整的图片。
因此,我创建了一个小项目:
app.py
manage.py
orm/
__init__.py
models.py
manage.py 有配置:
from django.conf import settings
settings.configure(
DATABASE_ENGINE = 'mysql',
DATABASE_NAME = 'db',
DATABASE_USER = 'admin',
DATABASE_PASSWORD = '',
DATABASE_HOST = 'localhost',
INSTALLED_APPS = ('orm')
)
models.py:
from django.db import models
class Label(models.Model):
name = models.CharField(max_length=50) # required max_length
最后是我的主文件 app.py:
from django.conf import settings
from django.db import models
from orm.models import *
\# do database maniupaltions
虽然运行 app.py 后我收到一个错误:
django.core.exceptions.ImproperlyConfigured: Requested setting DEFAULT_INDEX_TABLESPACE, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
我做错了什么?
【问题讨论】:
-
django 具有管理命令,您可以将其作为脚本运行,而无需运行 runserver。在这里阅读更多:docs.djangoproject.com/en/1.11/howto/custom-management-commands
-
使用@VikashSingh 已经提到的自定义命令。另一种选择可能是stackoverflow.com/a/41826771/5616580
-
您正在
manage.py中配置设置,但您正在运行app.py。如果你要运行app.py,那就是你需要配置它们的地方。在使用 ORM 之前,您还需要致电django.setup()。 -
@knbk
django.setup()- 我认为这是我缺少的部分,我让它工作了,谢谢
标签: python django python-2.7 django-models orm