• Можно ли складывать статические файлы django сразу в STATIC_ROOT?

    syschel
    @syschel
    freelance/python/django/backend
    STATIC_ROOT - дирректория где хранятся не изменяемые файлы. Как правило это вёрстка дизайна, ключи верификации и так далее. То что разработчик сайта сохранил на всегда.
    MEDIA_ROOT - Дирректория пользовательских файлов. То что заливают пользователи (аватарки, текстовики/архивы), то что движок может генерировать сам (к примеру скрипт тырит картинки с другого сайта и складирует тут).

    Я не понимаю откуда Django собирает эти файлы.

    Есть папка, куда предварительно скидывает статичные файлы разработчик. Пути пишутся в STATICFILES_DIRS. После применения collectstatic, файлы переносятся (клонируются) в папку путь к которой указан в STATIC_ROOT.

    Мой вариант (1.6.)
    import os
    PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))
    MEDIA_ROOT = os.path.join(PROJECT_PATH, "media")
    MEDIA_URL = '/media/'
    STATIC_ROOT = os.path.join(PROJECT_PATH, "static")
    STATIC_URL = '/static/'
    STATICFILES_DIRS = (
        os.path.join(PROJECT_PATH, "dev_static"),
    )


    И да, самое главное. Да! Складывать сразу можно, джанго не обидится. А вот в обратку, сложить в STATICFILES_DIRS и не выполнить collectstatic, а потом надеяться увидеть файлы в STATIC_ROOT, нельзя.
    Ответ написан
    3 комментария
  • Python, модуль openpyxl: Как при записи в Excel файл не удалить обрисованные границы объеденной ячейки?

    @Xander017
    Вот по это ссылке есть пример работы с объединенными ячейками.
    Styling Merged Cells
    Думаю, под ваши объединения у вас получится его подшаманить.
    Ответ написан
    Комментировать
  • Как извлечь текст находящийся между тегами?

    @javedimka
    Хочу сока
    lxml
    >>> import lxml.etree
    >>> doc = """
    ... <?xml version="1.0" encoding="ANSI" ?>
    ... <data>
    ...      <items>
    ...          <item name="item1">1</item>
    ...          <item name="item2">2</item>
    ...          <item name="item3">3</item>
    ...          <item name="item4">4</item>
    ...      </items>
    ... </data>
    ... .----------------------------------------------------------
    ... """
    >>> parser = lxml.etree.XMLParser(recover=True)
    >>> tree = lxml.etree.fromstring(doc, parser)
    >>> [element.text for element in tree.iter('item')]
    ['1', '2', '3', '4']

    Без lxml можно так:
    >>> import xml.etree.ElementTree as ET
    >>> doc = """
    ... <?xml version="1.0" encoding="ANSI" ?>
    ... <data>
    ...      <items>
    ...          <item name="item1">1</item>
    ...          <item name="item2">2</item>
    ...          <item name="item3">3</item>
    ...          <item name="item4">4</item>
    ...      </items>
    ... </data>
    ... .----------------------------------------------------------
    ... """
    >>> tree = ET.fromstring(doc.strip('\n-.'))
    >>> [element.text for element in tree.iter('item')]
    ['1', '2', '3', '4']
    Ответ написан
    5 комментариев