Google App Engine için proje yapısı

| | | | | | | | | | | | | | | | | | | |

Google App Engine'de, teknolojiyle oynamak ve uzun zamandır düşündüğüm ama bir türlü başlayamadığım bir evcil hayvan projesinde çalışmak için çıktığı anda bir uygulama başlattım. Sonuç BowlSK. Ancak, büyüdükçe ve özellikler eklendikçe, işleri düzenli tutmak gerçekten zorlaştı - esas olarak bunun benim ilk python projem olması ve çalışmaya başlayana kadar bu konuda hiçbir şey bilmiyordum.

Sahip olduklarım:

  • Ana Düzey şunları içerir:
    • tüm .py dosyaları (paketlerin nasıl çalışacağını bilmiyordum)
    • ana düzey sayfalar için tüm .html şablonları
  • Alt dizinler:
    • css, resimler, js vb. için ayrı klasörler
    • alt dizin tipi url'ler için .html şablonları içeren klasörler

Örnek:
http://www.bowlsk.com/ Ana Sayfaya eşlenir (varsayılan paket), şablon "index.html"
http://www.bowlsk.com/games/view-series.html?series=7130 ViewSeriesPage'e eşlenir (yine varsayılan paket), "games/view-series.html" adresindeki şablon

Bu çok kötü. Nasıl yaparım yeniden yapılandırma? 2 fikrim vardı:

  • İçerdiği Ana Klasör: appdef, indexes, main.py?

    • Kod için alt klasör. Bu benim ilk paketim mi olmalı?
    • Şablonlar için alt klasör. Klasör hiyerarşisi paket hiyerarşisiyle eşleşir
    • Css, resimler, js vb. için ayrı alt klasörler
  • appdef, dizinler, ana içeren Ana Klasör .py?

    • Kod + şablonlar için alt klasör. Bu şekilde, şablonun hemen yanında işleyici sınıfına sahibim, çünkü bu aşamada, birçok özellik ekliyorum, bu nedenle birindeki değişiklik diğerinde değişiklik anlamına gelir. Yine, bu klasör adının ilk paket olması gerekir mi? Klasörün "src" olmasını istiyorum ama sınıflarımın "src.WhateverPage" olmasını istemiyorum

Bir en iyi uygulama var mı?Ufukta Django 1.0 varken, resmi GAE şablonlama motoru haline geldiğinde onunla bütünleşme yeteneğimi geliştirmek için şimdi yapabileceğim bir şey var mı? daha iyi, ancak pyDev'in yeniden düzenleme desteği paket hareketlerini çok iyi idare etmiyor gibi görünüyor, bu nedenle tüm bunların yeniden çalışmasını sağlamak muhtemelen önemsiz bir görev olacaktır.