CherryPy - aplikacja demonstracyjna

W tym rozdziale skupimy się na tworzeniu aplikacji we frameworku CherryPy.

Rozważać Photoblogaplikacja do demo aplikacji CherryPy. Aplikacja Photoblog to zwykły blog, ale głównym tekstem będą zdjęcia zamiast tekstu. Głównym haczykiem aplikacji Photoblog jest to, że programista może bardziej skupić się na projektowaniu i wdrażaniu.

Struktura podstawowa - projektowanie jednostek

Podmioty projektują podstawową strukturę aplikacji. Poniżej przedstawiono jednostki dla aplikacji Photoblog -

  • Film
  • Photo
  • Album

Poniżej znajduje się podstawowy diagram klas dla relacji encji -

Struktura projektu

Jak omówiono w poprzednim rozdziale, struktura projektowa projektu wyglądałaby tak, jak pokazano na poniższym zrzucie ekranu -

Rozważ daną aplikację, która ma podkatalogi dla aplikacji Photoblog. Podkatalogi to Photo, Album i Film, które obejmują controllers.py, models.py i server.py.

Funkcjonalnie aplikacja Photoblog zapewni interfejsy API do manipulowania tymi jednostkami za pośrednictwem tradycyjnego interfejsu CRUD - tworzenia, pobierania, aktualizowania i usuwania.

Połączenie z bazą danych

Moduł pamięci zawiera zestaw operacji; połączenie z bazą danych będącą jedną z operacji.

Ponieważ jest to kompletna aplikacja, połączenie z bazą danych jest obowiązkowe dla API i dla zachowania funkcjonalności tworzenia, pobierania, aktualizacji i usuwania.

import dejavu

arena = dejavu.Arena()
from model import Album, Film, Photo
def connect():

conf = {'Connect': "host=localhost dbname=Photoblog user=test password=test"}
arena.add_store("main", "postgres", conf)
arena.register_all(globals())

Arena w powyższym kodzie będzie naszym interfejsem między podstawowym menedżerem pamięci a warstwą logiki biznesowej.

Funkcja connect dodaje menedżera pamięci do obiektu arena dla RDBMS PostgreSQL.

Po uzyskaniu połączenia możemy tworzyć formularze zgodnie z wymaganiami biznesowymi i zakończyć pracę aplikacji.

Najważniejszą rzeczą przed stworzeniem jakiejkolwiek aplikacji jest entity mapping i zaprojektowanie struktury aplikacji.