我是Python新手,我正在研究这段代码。我试图找出像PROJECT_ROOT
这样的术语含义是什么我怀疑它就像一个事件。我已经在GUI中导入了os,但是当我通过键入help(os)
来搜索该术语时,我没有在那里找到它
#Django settings for pysec project
import os
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
DEBUG = True
TEMPLATE_DEBUG = DEBUG
ADMINS = (
# ('Your Name', 'your_email@example.com'),
)
MANAGERS = ADMINS
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '', # Or path to database file if using sqlite3.
# The following settings are not used with sqlite3:
'USER': '',
'PASSWORD': '',
'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
'PORT': '', # Set to empty string for default.
}
}
我从python网站和文档中搜索了很多教程,但我没有找到这些命令的含义。
我在搜索过的其他单词中也喜欢ADMINS和DEBUG
答案 0 :(得分:1)
您的所有问题都在文档available here on the Django site中得到了解答。你应该在继续之前阅读Django教程,否则你会被困在Django的每一个功能上!
答案 1 :(得分:1)
os
是Python标准库中的一个模块,请参阅documentation。 os.path
是一个子模块,请参阅documentation。
__file__
是当前文件的路径(此代码所在的Python文件,可能是"./settings.py"
左右)。
os.path.dirname
获取路径并返回其中的目录部分(路径减去settings.py
)。
os.path.abspath
将路径转换为绝对路径。
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
进行设置" PROJECT_ROOT"等于settings.py所在目录的绝对路径。
settings.py
包含完全正常的Python代码,在Django启动时执行,Django从中导入变量,以及如何配置Django。
答案 2 :(得分:1)
这种代码可能看起来令人生畏,但这样的代码的唯一目的是定义一些项目范围的常量,您可以随意使用它们。如果你愿意,你可以设置你自己的常量,什么都不会破坏,它们就会被使用,就像这样:
import os
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
DEBUG = True
TEMPLATE_DEBUG = DEBUG
MY_VARIABLE = "nonsense"
唯一的一点就是在其他地方(假设上面的文件名为settings.py
)你可以这样写:
from settings import PROJECT_ROOT
或
import settings
print settings.PROJECT_ROOT
具体来说,PROJECT_ROOT
是当前文件的路径,DEBUG
实际上只是设置为True
的布尔值,TEMPLATE_DEBUG
也设置为相同的布尔值( True
),依此类推。
这些常量的定义很简单,复杂的部分是Django在使用它们时实际对这些常量做的事情。如果你想了解这一点,你必须深入研究一些django源代码。
答案 3 :(得分:0)
PROJECT_ROOT
是Django魔法,通常你不需要担心它。您可以看到Django框架代码从当前Python源文件的路径动态推断它。
我认为一旦部署此代码,它就会用于查找自己的资源(例如静态图像)。