官术网_书友最值得收藏!

Defining relative paths in the settings

Django requires you to define different file paths in the settings, such as the root of your media, the root of your static files, the path to templates, the path to translation files, and so on. For each developer of your project, the paths may differ as the virtual environment can be set up anywhere and the user might be working on Mac OS X, Linux, or Windows. Anyway, there is a way to define these paths that are relative to your Django project directory.

Getting ready

To start with, open settings.py.

How to do it…

Modify your path-related settings accordingly instead of hardcoding the paths to your local directories, as follows:

# settings.py
# -*- coding: UTF-8 -*-
from __future__ import unicode_literals
import os

BASE_DIR = os.path.abspath(
    os.path.join(os.path.dirname(__file__), "..")
)

MEDIA_ROOT = os.path.join(BASE_DIR, "myproject", "media")

STATIC_ROOT = os.path.join(BASE_DIR, "myproject", "static")

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "myproject", "site_static"),
)

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, "myproject", "templates"),
)

LOCALE_PATHS = (
    os.path.join(BASE_DIR, "locale"),
)

FILE_UPLOAD_TEMP_DIR = os.path.join(
    BASE_DIR, "myproject", "tmp"
)

How it works…

At first, we define BASE_DIR, which is an absolute path to one level higher than the settings.py file. Then, we set all the paths relative to BASE_DIR using the os.path.join function.

See also

  • The Including external dependencies in your project recipe
主站蜘蛛池模板: 阳城县| 竹北市| 当涂县| 房山区| 逊克县| 浠水县| 天峨县| 许昌县| 广丰县| 靖西县| 六安市| 兴文县| 小金县| 澄江县| 大方县| 惠水县| 巴林左旗| 文化| 南江县| 罗源县| 尚义县| 海兴县| 贵州省| 静宁县| 益阳市| 军事| 外汇| 永德县| 武强县| 卢湾区| 汝城县| 东明县| 夏津县| 钟山县| 黎平县| 湟源县| 博乐市| 汉寿县| 东源县| 花莲市| 罗田县|