Почему абсолютные пути к шаблонам и CSS в Django? (Разве это не плохая практика?) - PullRequest
0 голосов
/ 15 августа 2011

В django документация просит использовать абсолютные пути, а не относительные пути.

Тогда как они управляют переносимостью?

Если у меня есть шаблон в папке проекта, даже переименование папки приведет к поломке ..!

Тогда в чем причина этой практики?

Пожалуйста, объясните?

Ответы [ 2 ]

1 голос
/ 15 августа 2011

Не могли бы вы опубликовать ссылку на этот документ, пожалуйста?

В Django вы настраиваете в settings.py путь поиска для шаблонов (через переменную TEMPLATE_DIRS).Затем внутри представления вы визуализируете шаблон с именем своего файла относительно одного из путей, включенных в TEMPLATE_DIRS.Таким образом, всякий раз, когда вы перемещаете свой шаблон dir, вам просто нужно изменить ваши settings.py

Что касается статических файлов, таких как CSS-документы, Django не нужно ничего знать о них (если вы не предоставляете статические файлы черезсам django, что не одобряется документацией django): вам нужно только указать веб-серверу, где их искать.

0 голосов
/ 15 августа 2011

Я переключаю среды с рабочего стола Linux на ноутбук с Windows, поэтому жесткие пути кодирования у меня тоже не будут работать.

Возможно, есть лучший способ сделать это, но я написал эту функцию, которая идет вверху моего settings.py, чтобы получить абсолютный путь от относительного пути в моем проекте:

#settings.py
import os

def map_path(directory_name):
    return os.path.join(os.path.dirname(__file__), \
        directory_name).replace('\\', '/')

Это позволяет мне сделать:

MEDIA_ROOT = map_path('static')
TEMPLATE_DIRS = (
    map_path('templates'),
)

"static" и "templates" живут в корне моего проекта. Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...