Организация файлов проекта для веб-приложения Python с функциональностью базы данных - PullRequest
1 голос
/ 05 февраля 2012

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

Основными составляющими проекта являются:

  • База данных SQLite
  • Веб-приложение, написанное на платформе Pyramid, которое читает из базы данных
  • Набор приложений Python, которые загружают данные и добавляют их в базу данных
  • Документация

Я бы хотел отслеживать все исходные файлы всех компонентов (включая документацию), используя git.

Кажется ли следующее хорошей структурой для проекта?

Main_Project_Directory
+-- virtualenv
|   +-- bin, lib, include, man
|   +-- PyramidApplication
|   |   +-- setup.py
|   |   +-- development.ini
|   |   +-- Application
|   |   |   +-- __init__.py
|   |   |   +-- ...
|   |   +-- ...
|   +-- DatabaseWritingApp1
|   |   +-- __init__.py
|   |   +-- ...
|   +-- DatabaseWritingApp2
|   |   +-- __init__.py
|   |   +-- ...
|   +-- database.sqlite
+-- documentation

Как мне инициализировать git-репозитории здесь? Было бы хорошо иметь один git-репозиторий в верхнем каталоге, чтобы отслеживать приложение пирамиды, другие приложения и документацию? Или предпочтительнее использовать несколько git-репозиториев? Я единственный разработчик в этом проекте.

Кроме того, есть ли в virtualenv какой-нибудь файл, в котором перечислены все установленные пакеты и их версии, чтобы из него можно было восстановить каталоги bin, lib и т. Д.? Если да, то было бы хорошо включить этот файл в репозиторий git, чтобы virtualenv можно было легко восстановить после извлечения?

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 05 февраля 2012

вам не нужны все ваши проекты в каталоге virtualenv.Мне нравится помещать все мои файлы в ~/Workspace, чтобы сохранить его в чистоте.Просто убедитесь, что вы запускаете . virtualenv_directory/bin/activate перед тем, как запускать приложение для пирамид.

Я не знаю, пытаетесь ли вы быть модульным со своим кодом или нет.Другими словами, планируете ли вы использовать DatabaseWritingApp* вне PyramidApplication?Если это так, я бы сделал то, что вы делаете, разделил бы их на разные папки и имел бы репозиторий GitHub для каждой, независимо от того, сколько у вас разработчиков.С другой стороны, если вы не планируете использовать DatabaseWritingApp* отдельно, я бы просто объединил все в PyramidApplication и использовал бы один репозиторий GitHub.

Для бинов и lib для virtualenv я должен убедиться, что все нужные мне библиотеки находятся в файле setup.py, и просто запустить python setup.py develop перед запуском приложения Pyramid.Это гарантирует, что ваш virtualenv имеет все необходимые библиотеки, если они все из easy_install или pip.

...