Python 关于如何在Django中使用os.path.dirname的说明

Python 关于如何在Django中使用os.path.dirname的说明,python,django,dirname,os.path,Python,Django,Dirname,Os.path,我正在使用Django 1.5和Python 2.7。我的项目目录通常是: 有一个名为projectFolder的项目文件夹。在projectFolder中,还有两个其他文件夹:projFolder和projApp projFolder中有my settings.py、init.py和url.py projApp内有my models.py、views.py和保存模板的静态文件夹。现在,在我的settings.py文件中,我有以下内容: SITE_MEDIA_ROOT = os.path.joi

我正在使用Django 1.5和Python 2.7。我的项目目录通常是:

有一个名为projectFolder的项目文件夹。在projectFolder中,还有两个其他文件夹:projFolder和projApp

projFolder中有my settings.py、init.py和url.py

projApp内有my models.py、views.py和保存模板的静态文件夹。现在,在我的settings.py文件中,我有以下内容:

SITE_MEDIA_ROOT = os.path.join(
    os.path.dirname(__file__), 'projApp/', 'static/', 'site_media' 
)
上面的代码行工作得非常好,这就是我在下面的教程中读到的内容。然而,难道不是吗

SITE_MEDIA_ROOT = os.path.join(
    os.path.dirname(__file__), '../', 'projApp/', 'static/', 'site_media' 
)
??据我了解,

os.path.dirname(__file__)
当前文件所在目录的路径是否正确?这就是projFolder,因为settings.py在projFolder中。那么,我是否应该先退出当前目录,然后进入projApp文件夹,以访问静态文件夹?这条线不是吗

os.path.dirname(__file__), 'projApp/', 'static/', 'site_media' 
意味着Django应该搜索

projectFolder/projFolder/projApp/static
??如果是,那么它如何在不首先退出当前settings.py目录的情况下找到static呢?

是的,它应该:)至少我的项目是这样的,除了
之外。
有以下内容:

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
我认为它现在默认为setings.py

您确定settings.py是您所说的位置吗

也许可以尝试将一些打印语句添加到settings.py并运行测试服务器,以查看这些路径的实际值

 print os.path.dirname(__file__)

嗯,好的。。现在我想起来了,我不认为SITE_MEDIA_ROOT甚至在Django文档中,我甚至不认为我在我的应用程序中使用它,我想这就是为什么它没有给出任何错误的原因。我想我读的教程是为了写MEDIA_ROOT.nevermind,在我的url.py中,我确实使用SITE_MEDIA_ROOT,比如:“url(r'^SITE_MEDIA/(?P.*)”,'django.views.static.service',{'document_ROOT:settings.SITE_MEDIA_ROOT}),“@user2719875应该是
MEDIA_ROOT
和/或
static_ROOT
,同样,再见,好的,谢谢。。我只是更改了我的站点\u MEDIA\u ROOT,并在前面添加了一个“../”,一切都正常工作。我现在就把它留给“../”了。