общая библиотека / классы django - PullRequest
10 голосов
/ 18 декабря 2010

Я новичок в django и искал совета, где разместить мою общую библиотеку. Я планирую создать классы, которые я хочу использовать во всех моих приложениях в рамках проекта. Где было бы лучшее место для их размещения?

e.x абстрактные модели

С уважением,

Ответы [ 4 ]

14 голосов
/ 19 декабря 2010

Мы обычно настраиваем наши проекты следующим образом:

/site/
    __init__.py
    manage.py
    settings.py
    urls.py
    /apps/
        __init__.py
        /appA/
            __init__.py
        /appB/
            __init__.py
    /lib/
        __init__.py
        /django-lib/
            __init__.py
        /shared-lib/
            __init__.py

Просто убедитесь, что каталог вашего сайта находится на вашем пути Python:

import sys
sys.path.append('/path/to/site/')

Также убедитесь, что init.pyсуществует на сайте, в приложениях и в библиотеке, поэтому их можно рассматривать как модули с использованием импорта точечных обозначений (import site.lib.shared-lib)

Редактировать:

В ответ на ваш вопрос относительно вашегопуть к Python, все это связано с тем, где находится ваш файл manage.py или эквивалентный файл.Если он находится в каталоге / site / (рядом с приложениями и lib), тогда с PYTHONPATH все должно быть в порядке.

Необходимо убедиться, что в каждом каталоге содержится пустой файл с именем __init__.py.Это говорит Python обрабатывать этот каталог как модуль.См. Новое и улучшенное искусство ASCII выше.

9 голосов
/ 06 февраля 2016

Что я узнал из Two Scoops of Django , так это то, что вы помещаете общий код в приложение Django, которое вы создаете сами, под названием core.

Для использования core Приложение тогда аналогично тому, как вы перекрестно используете классы из других приложений.

Чтобы узнать больше, перейдите к главе 28 книги под названием: «А как насчет этих случайных утилит?»

0 голосов
/ 19 декабря 2010

Если совместно используемая библиотека будет использоваться и в других проектах, вы можете создать установщик, используя distutils .Но если это только для приложений в проекте, вы можете принять ответ AntonioP.

Помните, что корень вашего проекта (папка, содержащая manage.py) всегда находится в вашем PYTHON_PATH при запуске проекта django, поэтомуВы можете создать папку deps или dependencies или extra или что угодно, которая содержит ваши общие библиотеки.

0 голосов
/ 19 декабря 2010

Где угодно, вы можете импортировать их, если они находятся в PYTHON_PATH.

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