运行Django / WSGI时,python在哪里获取路径的值

时间:2011-08-31 12:32:06

标签: django django-wsgi

简而言之:

views.py:

def display_path(request):
    import os
    return HttpResponse("The path is %s" % os.path.abspath("."))

结果

  

路径是/ var / www

是否可以更改该值,还是由httpd / WSGI设置?

1 个答案:

答案 0 :(得分:2)

您永远不应该依赖当前工作目录作为Web应用程序中的特定位置,因为不同的托管机制将会有所不同。所以,甚至不要尝试更改当前的工作目录,因为它最终只会依赖于此而导致悲痛。

相反,您应该组织代码以使用绝对路径。这将需要硬编码,作为后缀添加到配置中的某个前缀,或者相对于正在执行的代码文件的位置在运行中计算。在后者你会这样做:

import os
here = os.path.dirname(__file__)
path = os.path.join(here, 'relative/path/file.txt')