Я начал приложение в Google App Engine сразу, когда он вышел, чтобы играть с технологией и работать над проектом для домашних животных, о котором я долго думал, но так и не начал. Результатом является BowlSK. Тем не менее, по мере того, как он вырос, и добавлены функции, было очень сложно организовать работу - в основном из-за того, что это мой первый проект python, и я ничего не знал об этом, пока не начал работать.
Что у меня:
- Основной уровень содержит:
- все файлы .py(не знали, как создавать пакеты)
- все .html шаблоны для страниц основного уровня
- подкаталоги:
- отдельные папки для css, изображений, js и т.д.
- папки, в которых хранятся шаблоны .html для URL-адресов поддиректории
Пример:
http://www.bowlsk.com/ сопоставляется с HomePage (пакет по умолчанию), шаблон в "index.html"
http://www.bowlsk.com/games/view-series.html?series=7130 сопоставляется с ViewSeriesPage (опять же, по умолчанию), шаблон в "games/view-series.html"
Это противно. Как мне реструктурировать? У меня было 2 идеи:
-
Основная папка, содержащая: appdef, indexes, main.py?
- Подпапка для кода. Это должен быть мой первый пакет?
- Подпапка для шаблонов. Периферия папок будет соответствовать пакетной иерархии.
- Индивидуальные подпапки для css, изображений, js и т.д.
-
Основная папка, содержащая appdef, indexes, main.py?
- Подпапка для шаблонов+. Таким образом, у меня есть класс обработчика рядом с шаблоном, потому что на этом этапе я добавляю множество функций, поэтому модификации одних средних изменений в другом. Опять же, мне нужно, чтобы это имя папки было первым именем пакета для моих классов? Я хотел бы, чтобы папка была "src", но я не хочу, чтобы мои классы были "src.WhateverPage"
Есть ли наилучшая практика? С Django 1.0 на горизонте, есть ли что-то, что я могу сделать сейчас, чтобы улучшить свою способность интегрироваться с ним, когда станет официальным механизмом шаблонов GAE? Я просто начал бы пробовать эти вещи и видеть, что кажется лучше, но поддержка рефакторинга pyDev, похоже, не очень хорошо справляется с ходом пакета, поэтому, вероятно, будет нетривиальная задача, чтобы все это снова работало.