Django路径,在windows中开发,在linux上部署

mar*_*r75 7 django path

我正在我的本地Windows机器上开发Django应用程序,然后部署到托管的Linux服务器.路径的格式在两者之间是不同的,并且在部署之前手动替换消耗的时间超过它应该的时间.我可以根据我的设置文件和if语句中的变量进行编码,但我想知道是否有人对此方案有最佳实践.

And*_*Dog 4

Django 书建议使用os.path.join(并在 Windows 上使用斜杠而不是反斜杠):

import os.path

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), 'templates').replace('\\','/'),
)
Run Code Online (Sandbox Code Playgroud)

我认为这是最好的解决方案,因为您可以轻松创建这样的相对路径。如果您有多个相对路径,辅助函数将缩短代码:

def fromRelativePath(*relativeComponents):
    return os.path.join(os.path.dirname(__file__), *relativeComponents).replace("\\","/")
Run Code Online (Sandbox Code Playgroud)

如果需要绝对路径,则应将环境变量(带有os.environ["MY_APP_PATH"])与os.path.join.

  • 您可能想要使用 `posixpath.join()` 而不是 `os.path.join().replace()` ——它让您的意图变得清晰:无论您的操作系统如何,您都需要一个 POSIX 风格的路径。 (2认同)