Myghty
14 July 2008
Comments
Myghty to serwer jak i framework to tworzenia dynamicznych stron www w Pythonie. Myghty to głownie potężny system szablonów, lecz można w nim tworzyć kompletne aplikacje. Wykorzystywany jest przez megaframework Pylons.
Myghty nie jest już rozwijane ze względu przejęcia jego funkcjonalności przez szablony Mako i aplikacje takie jak Paste i PasteDeploy. Dla Pylons 1.0 domyślnym systemem szablonów będzie Mako.
Myghty może działać niezależnie lub poprzez mod_python/Apache. Na początek skorzystamy z serwera Myghty. W pustym katalogu zapisz jako server.py:
import myghty.http.HTTPServerHandler as HTTPServerHandler
httpd = HTTPServerHandler.HTTPServer(port = 8080, handlers = [{'.*\.myt' : HTTPServerHandler.HSHandler(data_dir = './cache', component_root = './')},], docroot = [{'.*' : './'}],)
httpd.serve_forever()
% for x in range(0, 10):
print 'petla!<br/>'
%
% for mood in ['happy', 'happy', 'sad', 'sad', 'happy']:
% if mood == 'happy':
Mamy Happy<br />
% else:
Nie mamy Happy :)<br />
% #koniec ifa
% #koniec pętli
Inny sposób dodawania kodu pythona to bloki:
<%python>
m.write('aaaaaaaaaa')
</%python>
<%python>
import struct
plik = open('Spells.bif', 'rb')
try:
tekst = plik.read()
finally:
plik.close()
m.write('Number of entries: ' + str(struct.unpack('i', tekst[0x0008:0x0008+4])[0]) + '<br />')
m.write('Number of tileset entries: ' + str(struct.unpack('i', tekst[0x000c:0x000c+4])[0])+ '<br />')
m.write('Offset of entries: ' + str(struct.unpack('i', tekst[0x0010:0x0010+4])[0])+ '<br />')
m.write('Resource: ' + str(struct.unpack('i', tekst[0x0000+16:0x0000+20])[0])+ '<br />')
m.write('Ofset do plikow: ' + str(struct.unpack('i', tekst[0x0004+16:0x0004+20])[0])+ '<br />')
m.write('Ile tilsow: ' + str(struct.unpack('i', tekst[0x0008+16:0x0008+20])[0])+ '<br />')
m.write('rozmiar tilsa: ' + str(struct.unpack('i', tekst[0x000c+16:0x000c+20])[0])+ '<br />')
</%python>

Szablony
Najprostszy przypadek to załączenie jednego pliku .myt z drugiego. Wystarczy do tego polecenie:<& plik.myt &>
Komponenty mogą określać zestaw zmiennych jakie chcą/muszą otrzymywać. Do definiowania ich służy blok args:
<%args>
foo = None
</%args>
Nieco inny przykład:
Plik plik.myt
<%args>
username
email
</%args>
Username: <% username %><br/>
Email: <a href="mailto:<% email %>"><% email %></a><br/>
<html>
<head><title>Test Page</title></head>
<body>
<h1>dane logowania</h1>
<& plik.myt, username='andrzej', email='andrzej@lepper.com' &>
</body>
</html>

RkBlog
Comment article