Python 关于如何在Django中使用os.path.dirname的说明
我正在使用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文件中,我有以下内容: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
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,并在前面添加了一个“../”,一切都正常工作。我现在就把它留给“../”了。