我是Django的新手。我的localhost网站运行正常。由于我使用的是pycharm,因此很容易运行任何文件。我决定在我的django项目中运行每个文件,并遇到了一些错误,例如我的views.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.
即使网站正在运行,看起来还不错,我看到了这条消息。造成这种情况的原因是什么,这是典型的吗?
答案 0 :(得分:0)
您无法运行django项目中的每个文件。
无论这些是.py
扩展名的文件。它们依赖于django框架来运行项目。
您可能会看到该错误的原因是因为您可能正在使用settings.py
文件中存在的属性,而这些属性又需要django将应用程序设置为像启动WSGI
服务器一样运行,在您实际使用任何内容之前,依赖项和installed apps
已准备就绪。
了解Django是一个框架,它依赖于许多底层组件来实际工作。即使您认为技术上可以以任何方式运行任何文件,您也无法启动应用程序本身。
如果您想通过django shell
使用python manage.py shell
来检查和测试应用程序来测试应用程序,还有其他方法可以执行此操作,这将是执行单个测试而不是运行的更好方法每个文件都是独立的。
答案 1 :(得分:0)
您可以在使用Django的Django项目中运行任何单个 python文件,但请记住,必须提供Django的设置。使用Django运行单个文件不是一个好习惯,但出于调试目的,您可以使用它(例如。测试您使用数据库访问编写的解析器),
您必须先配置Django设置,然后才能在单个文件上对Django执行任何操作。
from django.conf import settings
settings.configure()
def do_something_with_a_model():
# does something with a model
print "I am done!!"
请注意,在单个文件上运行时,相对导入可能会中断。
(例如。使用单个文件时,from .another_module import AnotherClass
等导入可能会中断。)