Я запустив заявку в Google App Engine відразу, коли з’явився, щоб грати з технологіями та працювати над проектом для домашніх тварин, про який я довго думав, але ніколи не замислювався над тим, щоб почати. Результат - BowlSK . Однак, оскільки вона зростала та додавались особливості, стало важко організувати речі - головним чином через те, що це мій перший проект пітона, і я нічого про це не знав, поки не почав працювати.
Що я маю:
- Основний рівень містить:
- всі файли .py (не знав, як змусити працювати пакети)
- всі шаблони .html для сторінок основного рівня
- Підкаталоги:
- окремі папки для css, зображень, js тощо
- папки, що містять шаблони .html для URL-адрес типу subdirecty
Приклад:
http://www.bowlsk.com/ відображає на HomePage (пакет за замовчуванням), шаблон на "index.html"
http://www.bowlsk.com/games/view-series.html?series=7130 карта на ViewSeriesPage (знову пакет за замовчуванням), шаблон у "games / view-series.html"
Це противно. Як здійснити реструктуризацію? У мене було 2 ідеї:
Основна папка, що містить: appdef, індекси, main.py?
- Підпапка для коду. Чи повинен це бути моїм першим пакетом?
- Підпапка для шаблонів. Герархія папок відповідатиме пакетній герархії
- Індивідуальні підпапки для css, зображень, js тощо
Головна папка, що містить appdef, індекси, main.py?
- Підпапка для коду + шаблони. Таким чином, у мене є клас обробника поруч із шаблоном, тому що на цьому етапі я додаю безліч функцій, тож модифікації однієї середньої модифікації мають інші. Знову ж, чи потрібно, щоб ця назва папки була першою назвою пакета для моїх класів? Я хотів би, щоб папка була "src", але я не хочу, щоб мої заняття були "src.WeverPage"
Чи є найкраща практика? З Django 1.0 на горизонті, чи можу я щось зараз зробити, щоб покращити свою здатність інтегруватися з ним, коли він стає офіційним двигуном шаблону GAE? Я б просто почав пробувати ці речі, і побачив, що здається кращим, але підтримка рефакторингу pyDev, здається, не дуже добре справляється з переміщеннями пакетів, тому, швидше за все, це буде нетривіальним завданням змусити все це знову працювати.