2013-04-11 2 views
3

Я очень новичок в django и python. Я хочу попробовать проект, написанный на django.Структура django для нескольких модулей

Пусть говорят, что проект имеет 3 модуля

  1. пользователя
    • CRUD
    • Забыли пароль
    • Войти
  2. Бронирование
    • CRUD
    • Поиск
  3. По умолчанию (в основном для веб-пользователей для просмотра)
    • Главная
    • о нас

Все они имеют различную бизнес-логику для того же объекта.

Должен ли я создать 3 приложения для этого? Если 3 разных приложения, то имя таблицы будет различным, так как оно автоматически добавит префикс для имени таблицы.

Любое предложение?

ответ

0

Я тоже относительно новичок в Django и Python. На практике попробуйте, чтобы ваши приложения Django делали одно и делали это хорошо. Если вы обнаружите, что приложение становится все более сложным, возможно, стоит разделить его на несколько приложений.

Я бы не стал беспокоиться о том, как DB tablename, поскольку Django обрабатывает взаимодействие с БД для вас. Если вы хорошо назовете свои приложения и модели, ваш код должен быть достаточно документирован.

Я недавно узнал много «лучших практик» в том, как настраивать и компоновать проекты Django из книги 2 Scoops of Django. Я ни с кем не связан с ними, но только что многому научился.

Кроме того, определенно пройдите через Django tutorial, если вы еще этого не сделали.

Надеюсь, это помогло!

+0

Существует также еще одно учебное пособие, опубликованное недавно на NetTuts по адресу http://net.tutsplus.com/tutorials/python-tutorials/building-ribbit-with-django/?search_index=16 –

+0

благодарит за комментарий. Я прошел через часть официального учебника, но это только показывает основную вещь. Вот почему я задаю вопрос здесь. –

2

На самом деле нет правильного ответа на этот вопрос. В общем, то, как вы нарушаете любую задачу программирования в «модули», в значительной степени зависит от личного вкуса.

Мой собственный взгляд на объект должен начинаться с одного модуля и только разбивать его на более мелкие модули, когда он становится «необходимым», например. когда один модуль становится чрезмерно большим.

Что касается приложений, если все приложения используют одни и те же таблицы базы данных, вам, вероятно, будет проще делать все в одном приложении. Я думаю, что использование нескольких приложений Django действительно необходимо, когда вы хотите поделиться одним и тем же приложением между несколькими проектами.

1

Я согласен с ответом @aya, и я также поддерживал вашу структуру для нескольких модулей. В моем проекте я создал 18 приложений.Каждое приложение выполняет различные правила:

1. accounts 
     - login 
     - forgot password 
     - register 
     - profile 
2. common 
     //in here all the common function use by different apps 
3. front 
     - home 
     - testimonial 
4. guides 
     //tutorials 

и много больше приложений ...

устраивает таким образом, так что это будет легко отслеживать, отлаживать и найти коды. Если ваша проблема - имя таблицы, вы можете установить class Meta of db_table.

+0

Я также создал различные настройки для разработки, local, heroku, production и т. Д. – catherine

+0

, а как насчет класса модели? Скажем, для модели пользователя, которую я хочу использовать в обоих модулях, должно ли это быть 2 отдельных файла или только один глобальный файл? –

+1

@JsLim мои приложения имеют разные model_class, form_class и т. Д. Если я вызываю модель в разных модулях, я просто импортирую ее или, как прежде, из-за ленивого ввода. Я использую get_model для вызова всего моего класса model_class в разных модулях. Но теперь я предпочитаю импортировать его, иметь чистые и упорядоченные коды. Вы также можете использовать относительный импорт для уменьшения линии импорта. Также я наследую, так что я не могу нарушить принцип СУХОЙ. есть много способов уменьшить коды – catherine

0

Сосредоточьтесь на том, чтобы сделать ваши приложения многоразовыми. Таким образом вы сэкономите значительное количество времени в своем следующем проекте. Хорошая статья об этом доступна на Django's website.

Если у вас есть тесно интегрированные модули или в зависимости от друг друга, то нет никакой реальной выгоды от их использования в отдельных приложениях, потому что вы никогда не будете использовать их отдельно. Упорядочить отдельные модули Python будет просто отлично.

Также не думайте о том, «как будут называться мои таблицы», когда вы рассматриваете организацию проекта. Таблицы можно легко переименовать, в то время как плохой дизайн вызовет у вас проблемы, так как проект будет расти.

Смежные вопросы