Pierwsze kroki z Pylons
14 July 2008
Comments
Niniejszy tutorial przedstawia podstawy tworzenia aplikacji www we frameworku Pylons.Instalacja
Jeżeli mamy easy install to zainstalować możemy (spróbować) poprzez:easy_install Pylons
Drugi sposób to pobranie pliku http://peak.telecommunity.com/dist/ez_setup.py i wywołanie go:
python ez_setup.py Pylons
By zainstalować również wszystkie dodatki wystarczy dodać "[full]" - easy_install Pylons[full] lecz nie wszystkie dodatkowe komponenty mogą być sprawne.Tworzenie Projektów
By utworzyć nowy projekt wystarczy w konsoli wykonać polecenie:paster create --template=pylons NAZWA_PROJEKTU
Stworzy to katalog o nazwie takiej jak nazwa projektu oraz utworzyć bazowe pliki. Dla przykładu utwórzmy projekt test:
paster create --template=pylons test
Po wejściu do katalogu projektu zobaczymy:
README.txt development.ini setup.cfg setup.py test test.egg-info
__init__.py config controllers docs i18n lib models public templates tests websetup.py
Katalg public służy do przechowywania plików statycznych (JS, grafika itd.), W tests umieszczamy nasze testy obsługiwane przez paste.fixture i Nose. Katalog templates służy do przechowywania szablonów.
Uruchamianie serwera Pylons
Framework posiada swój własny serwer stosowany przy tworzeniu aplikacji. By uruchomić serwer wystarczy wykonać w głównym katalogu projektu polecenie:paster serve --reload development.ini
Pod adresem http://localhost:5000/ powinniśmy zobaczyć stronę "powitalną" frameworka.
Szablony, pliki statyczne i reszta ferajny
W katalogu test/public utwórz plik pliczek.html o zawartości:Jestem pliczek
Plik ten jest teraz dostępny pod adresem http://localhost:5000/pliczek.html. Domyślnie w Pylons pierwszeństwo nad treścią dynamiczną mają pliki z katalogu public (w przypadku takich samych URLi wywołany zostanie plik statyczny).W katalogu test/controllers utwórz kontroler - plik hello.py o kodzie:
from test.lib.base import *
class HelloController(BaseController):
def index(self):
return Response('witam wszystkich')
http://localhost:5000/hello
http://localhost:5000/hello/index
Pylons mapuje URLe, a dokładniej "zmienne" wg. schematu: kontroler/akcja/zmienne... Oprócz tego jeżeli nie podanym nazwy akcji to zostanie wykonana metoda index. Mapowanie to można jednak praktycznie dowolnie zmieniać i tworzyć określone dowiązania metod kontrolerów z określonymi linkami, a wszystko dzięki bibliotece Routes i plikowi config/routes.pyhttp://localhost:5000/hello/index
Szablony Myghty
Domyślnie Pylons korzysta z szablonów Myghty (choć można użyć innych). Stwórzmy plik szablon.myt w katalogu test/templates (przyjmuje się że rozszerzenie myt dotyczy szablonów myghty) o kodzie:<p>Zmienne serwera: <br />
<% str(request.environ) %></p>
<p>
URL: <% h.url_for() %>
</p>
from test.lib.base import *
class HelloController(BaseController):
def index(self):
return Response('witam wszystkich')
def serverinfo(self):
return render_response('/szablon.myt')
Pylons 1.0 i być może kilka wcześniejszych wersji będą domyślnie używać szablonów Mako.
Zmienne globalne frameworka
session - zachowuje się jak słownik, przechowuje dane o sesjachrequest - obiekt rządania
response - klasa odpowiedzi
abort - funkcja przerywająca proces i generująca HTTPException
redirect_to - funkcja przekierowująca na inny URL poprzez status HTTP 302
render - funkcja parsująca szablon i zwracająca łańcuch
render_response - parsuje szablon i zwraca Odpowiedź (Response)
h - składnica "pomocników" (helpers) frameworka, od Ajaxa po inne przydatne komponenty.
c - służy do przekazywania zmiennych do szablonu
Przekazywanie zmiennych do szablonów
Zmień kod metody serverinfo kontrolera hello na :def serverinfo(self):
c.zmienna = 'Jurek'
return render_response('/szablon.myt')
<h1><% c.zmienna %></h1>
RkBlog
Comment article