Artykuły, tutoriale, wsparcie dla programistów
May 17, 2012, 8:44 am

Web.py – cz.1

1 Gwiazdka2 Gwiazdki3 Gwiazdki4 Gwiazdki5 Gwiazdek (5 głosów, średnia: 4,20 / 5)

Autor: Michał Powaga

Czym jest web.py

Web.py jest prostym, aczkolwiek użytecznym, frameworkiem pomagającym w tworzeniu aplikacji web w pythonie. Może nie ma tylu możliwości co Django czy Pylons, ale jest bardzo prosty w nauce i pozwala stworzyć chociażby dynamiczną stronę domową.

Być może korzystałeś z serwisu wklej.to który używa web.py. Co prawda nie jest to żaden argument, przemawiający za tym by używać tego frameworka. Z pewnością jednak jest to dobry przykład jego możliwości i zastosowań.

Skąd wziąć web.py

Web.py jest projektem open-source, a można go pobrać z oficjalnej strony. Instalacja jest prosta, wystarczy pobrać archiwum i rozpakować go do odpowiedniego folderu. W tym tutorialu wykorzystam wersję 0.33 (obecnie najnowszą) a to opis jak poprawnie wykonać instalację tej wersji.

  • Pobieramy plik: http://webpy.org/static/web.py-0.33.tar.gz
  • Rozpakowujemy archiwum
  • Rozpakowany folder (web) przenosimy do folderu Lib który znajduje się w folderze w którym zainstalowany jest python np: C:\\Python26\Lib\
  • Aby sprawdzić czy instalacja się udała, wykorzystaj poniższy skrypt:

    import web
    app = web.application((), globals())

    Jeżeli skrypt nie ‘sypie’ błędów oznacza to że instalacja się udała.

    Jak napisać prostą aplikację

    Napiszmy teraz prostą aplikację Hello World!.

    Zacznijmy od stworzenia klasy z metodą GET. Metoda ta zostanie wywołana przez web.py w momencie gdy do frameworka trafi odpowiednie żądanie (ang. request).

    class Hello(object):
        def GET(self):
            return 'Hello World!'

    Teraz zajmijmy się żądaniami. Być może lepiej je nazwać url-ami lub odnośnikami. Chcemy aby adres nasza.aplikacja/hello/ wywołał metodę GET klasy Hello co w efekcie da jako rezultat tekst „Hello World!”. Stwórzmy krotkę, która będzie jakby mapą dzięki której web.py przekaże żądanie do odpowiedniej klasy.

    # żądanie,  nazwa klasy
    urls = ( '/hello/', 'Hello' )

    Teraz jesteśmy już bardzo blisko końcowego efektu. Musimy stworzyć obiekt klasy, który będzie m.in. odbierać żądania, przekazywać je do odpowiednich klas i zwracać rezultat działania tejże klasy (ściślej obiektu tej klasy który sam utworzy).

    my_app = web.application(urls, globals())

    Drugi parametr określa gdzie web.py ma szukać klas. Jeżeli nie są zdefiniowane w globalnej przestrzeni musimy podać jej nazwę.

    Teraz pozostało nam ‘wystartować’ naszą aplikację.

    my_app.run()

    Zbierzmy te poszczególne kawałki kodu i utwórzmy w pełni gotową aplikację.

    import web
    
    class Hello(object):
        def GET(self):
            return 'Hello World!'
    
    urls = ( '/hello/', 'Hello' )
    
    if __name__ == "__main__":
        my_app = web.application(urls, globals())
        my_app.run()

    Uruchamianie i testowanie

    Uruchom teraz skrypt który utworzyliśmy. Naszym oczom powinna ukazać się konsola na której wyświetli się adres, np: http://127.0.0.1:8080/. Pod tym adresem znajduje się nasza aplikacja. Nie wyłączaj jeszcze konsoli, inaczej zakończysz pracę aplikacji i nie ujrzysz efektów.

    W przeglądarce internetowej wpisz adres, który został wypisany w konsoli. Powinieneś zobaczyć ‘biały ekran’. Teraz dopisz do adresu: hello/. Efektem jest… tak napis Hello World!. To tyle, nasza aplikacja została ukończona.

    Zadanie

    Tak dla rozrywki, zmodyfikuj skrypt (a w zadzie jego jedną linijkę) tak aby np. taki adres: http://127.0.0.1:8080/ kierował do tej samej klasy co adres: http://127.0.0.1:8080/hello/

    Komentarze zablokowane.

    EN
    PL
    FR
    DE


    Software Press Sp. z o.o. Sp. Komandytowa 02-682 Warszawa, ul. Bokserska 1, NIP 9512279582, REGON 141804060, KRS: 0000327578