Forces were demonstrated in an experiment. The experiment showed how forces act on objects by pushing or pulling on them. The results of the demonstration provided insights into the effects of different types of forces.
URUG Ruby on Rails Workshop - Sesssion 5jakemallory
油
This document provides an overview and instructions for a Ruby on Rails workshop. It introduces the presenter and discusses Rails frameworks. It then covers topics like data handling, using Git and the server log, named scopes, click-to-sort columns, and search functionality. Code examples and implementation hints are provided for tasks like adding sort order icons, search forms, and search result filtering.
Mark Rourke, manager of Sushiwabi restaurant located at 842 W. Randolph in Chicago, Illinois, wrote a letter discussing loss and love in the restaurant industry. The letter provides contact information for Mark Rourke including his email, the restaurant address and phone/fax numbers.
" Managing working capital, financing the business, assessing
control of foreign Exchange and political risks and evaluating foreign
direct Investment."
- The document provides summaries of multiple wine label designs created by Rick for various wine brands.
- Rick creates refined, understated labels that reflect the winemaking philosophy and quality of the wines through subtle geometric designs, typography and natural textures.
- His expertise in design, printing processes and the wine industry allows him to consistently deliver high quality labels on time and on budget.
The document discusses liquid crystal colloids, including their importance for applications like self-assembly and optical materials. It outlines topics like the mean field approach to modeling colloid-liquid crystal interactions, different types of colloid-colloid interactions, using topological defects, and the potential of microfluidics to produce highly controlled colloidal systems. The document contains several figures illustrating experimental and theoretical work on colloidal systems and their behaviors in liquid crystals.
The document discusses different types of habitats including ocean, rainforest, desert, woodland, mountain, and arctic habitats. It explains that different animals are suited to live in different habitats depending on the conditions present, such as heat, cold, moisture. Camels and fish are given as examples of animals suited to their habitats. The document also introduces the concepts of mini-habitats, which are small areas providing an environment for a particular group of organisms, and micro-habitats, which are even smaller areas providing a home for very specific organisms. Examples given include woodlands as a habitat, trees as mini-habitats, and leaf litter as a micro-habitat.
The document provides an introduction to HTML (Hypertext Markup Language) including:
- HTML is a markup language used to define the structure and layout of web pages.
- HTML uses tags to annotate text with semantic meaning like headings, paragraphs, links, and images.
- The browser displays the HTML tags but does not show them, using them to interpret and display the content.
A presentation on CakePHP, a few explanation about how it works and an example, written in Catalan.
Una presentaci坦 sobre CakePHP, breu explicaci坦 sobre les funcionalitats i un petit exemple, en catal.
Per Josep Llodr Grimalt.
http://herotyc.com
Una petita explicaci坦 de qu竪 辿s l'HTML5, qu竪 incorpora i quina alternativa representa davant de tecnologies com Flash, Flex o Silverlight.
Al final es presenta una s竪rie d'idees per la seva integraci坦 dins del m坦n del Drupal, tant pel que fa a les plantilles com a m嘆duls.
IT Academy s'adre巽a a totes aquelles persones que volen reconvertir-se o trobar feina en el m坦n TIC, un dels sectors amb m辿s projecci坦 i millor remunerats. Per aix嘆 s'han dissenyat dues tipologies de formaci坦 presencial per adaptar-se millor a les necessitats i objectius de les possibles participants.
Cas dus de Framework web desenvolupat amb llibreries LliuresJordi Cat
油
El desenvolupament daplicacions web est sofrint una evoluci坦 constant, actualment apareixen multitut de frameworks de desenvolupament gil. En aquesta xerrada esposarem el funcionament dun framework web desenvolupat amb llibreries i components lliures, orientat a arquitectura Model Vista Controlador. El desenvolupament sha realitzat utilitzant les llibreries Pear::Dataobject (abstracci坦 de la base de dades), Smarty (a誰llament de PHP i HTML).
Correcci坦 de la PAC 2 de Programaci坦 Web del Grau Multim竪dia de la UOC. Per a descarregar els arxius html, visiteu la meva wiki, Rac坦 Vermell: http://raco-vermell.wikispaces.com/PROGRAMACI%C3%93+WEB
Display Suite permet prendre el control sobre com les entitats (continguts, usuaris, termes de taxonomies,...) es pinten sense haver de fer-ho picant codi al tema de la nostra Web. Ens permet fer servir disposicions amb multiples columnes, gestionar el codi que es genera per a cada camp, crear-ne de nous, i s'integra amb el Views i el Panels (si volem).
- Caracter鱈stiques principals de DS: Disposicions, Camps, Estils, Modes de visualitzaci坦.
- Extres: Plantilles de camps, Mode de visualitzaci坦 per node, Cambiador de mode de visualitzaci坦, Mode de visualitzaci坦 revisi坦, Opcions de t鱈tol de pgina, Regi坦 a bloc
- Integraci坦 amb altres m嘆duls: Views, Panels, Field groups, Renderable elements
The document discusses liquid crystal colloids, including their importance for applications like self-assembly and optical materials. It outlines topics like the mean field approach to modeling colloid-liquid crystal interactions, different types of colloid-colloid interactions, using topological defects, and the potential of microfluidics to produce highly controlled colloidal systems. The document contains several figures illustrating experimental and theoretical work on colloidal systems and their behaviors in liquid crystals.
The document discusses different types of habitats including ocean, rainforest, desert, woodland, mountain, and arctic habitats. It explains that different animals are suited to live in different habitats depending on the conditions present, such as heat, cold, moisture. Camels and fish are given as examples of animals suited to their habitats. The document also introduces the concepts of mini-habitats, which are small areas providing an environment for a particular group of organisms, and micro-habitats, which are even smaller areas providing a home for very specific organisms. Examples given include woodlands as a habitat, trees as mini-habitats, and leaf litter as a micro-habitat.
The document provides an introduction to HTML (Hypertext Markup Language) including:
- HTML is a markup language used to define the structure and layout of web pages.
- HTML uses tags to annotate text with semantic meaning like headings, paragraphs, links, and images.
- The browser displays the HTML tags but does not show them, using them to interpret and display the content.
A presentation on CakePHP, a few explanation about how it works and an example, written in Catalan.
Una presentaci坦 sobre CakePHP, breu explicaci坦 sobre les funcionalitats i un petit exemple, en catal.
Per Josep Llodr Grimalt.
http://herotyc.com
Una petita explicaci坦 de qu竪 辿s l'HTML5, qu竪 incorpora i quina alternativa representa davant de tecnologies com Flash, Flex o Silverlight.
Al final es presenta una s竪rie d'idees per la seva integraci坦 dins del m坦n del Drupal, tant pel que fa a les plantilles com a m嘆duls.
IT Academy s'adre巽a a totes aquelles persones que volen reconvertir-se o trobar feina en el m坦n TIC, un dels sectors amb m辿s projecci坦 i millor remunerats. Per aix嘆 s'han dissenyat dues tipologies de formaci坦 presencial per adaptar-se millor a les necessitats i objectius de les possibles participants.
Cas dus de Framework web desenvolupat amb llibreries LliuresJordi Cat
油
El desenvolupament daplicacions web est sofrint una evoluci坦 constant, actualment apareixen multitut de frameworks de desenvolupament gil. En aquesta xerrada esposarem el funcionament dun framework web desenvolupat amb llibreries i components lliures, orientat a arquitectura Model Vista Controlador. El desenvolupament sha realitzat utilitzant les llibreries Pear::Dataobject (abstracci坦 de la base de dades), Smarty (a誰llament de PHP i HTML).
Correcci坦 de la PAC 2 de Programaci坦 Web del Grau Multim竪dia de la UOC. Per a descarregar els arxius html, visiteu la meva wiki, Rac坦 Vermell: http://raco-vermell.wikispaces.com/PROGRAMACI%C3%93+WEB
Display Suite permet prendre el control sobre com les entitats (continguts, usuaris, termes de taxonomies,...) es pinten sense haver de fer-ho picant codi al tema de la nostra Web. Ens permet fer servir disposicions amb multiples columnes, gestionar el codi que es genera per a cada camp, crear-ne de nous, i s'integra amb el Views i el Panels (si volem).
- Caracter鱈stiques principals de DS: Disposicions, Camps, Estils, Modes de visualitzaci坦.
- Extres: Plantilles de camps, Mode de visualitzaci坦 per node, Cambiador de mode de visualitzaci坦, Mode de visualitzaci坦 revisi坦, Opcions de t鱈tol de pgina, Regi坦 a bloc
- Integraci坦 amb altres m嘆duls: Views, Panels, Field groups, Renderable elements
ELISAVA Beta. Cas d'竪xit desenvolupat per YmbraYmbra
油
Cas d'竪xit presentat a la sessi坦 de drupal.cat on expliquem quina 辿s la nostra metodologia de desenvolupament (a grosso modo) tot usant el cas d'竪xit de la Beta del web de l'ELISAVA.
somUPC: Integraci坦 de les intranets de la UPCinLabFIB
油
Presentaci坦 del projecte SOMUPC. Aquest neix amb lobjectiu dunificar i homogene誰tzar les Intranets de la UPC. Des del somUPC els membres de la comunitat UPC podran accedir a totes les Intranets que necessitin i les quals estan autoritzats des dun mateix lloc.
Turbo Gears, Framework De Python Per Aplicacions Web
1. TurboGears, framework de
Python per aplicacions web
I Jornades GPL Tarragona
29 de Gener de 2009
Toms Reverter Morell坦
tomas.reverter@lotomas.net
http://lotomas.net
2. Llic竪ncia Creative Commons BY-SA
Reconeixement-Compartir amb la mateixa llic竪ncia 3.0 Espanya
Sou lliure de:
copiar, distribuir i comunicar p炭blicament l'obra
fer-ne obres derivades
Amb les condicions seg端ents:
Reconeixement. Heu de recon竪ixer els cr竪dits de l'obra de la manera
especificada per l'autor o el llicenciador (per嘆 no d'una manera que
suggereixi que us donen suport o rebeu suport per l'炭s que feu l'obra).
Compartir amb la mateixa llic竪ncia. Si altereu o transformeu aquesta obra,
o en genereu obres derivades, nom辿s podeu distribuir l'obra resultant amb la
mateixa llic竪ncia, una de similar o una de compatible.
Quan reutilitzeu o distribu誰u l'obra, heu de deixar ben clar els termes de la llic竪ncia de l'obra.
Alguna de les condicions pot no aplicar-se si obteniu el perm鱈s del titular dels drets d'autor.
No hi ha res en aquesta llic竪ncia que menyscabi o restringeixi els drets morals de l'autor.
http://creativecommons.org/licenses/by-sa/3.0/es/deed.ca
TurboGears, framework de Python per aplicacions web 2
3. Taula de contingut
1. Qu竪 辿s TurboGears? I un framework?
2. Components, components i m辿s components
3. Model-Vista-Control i l'estructura de TurboGears
4. Hands-on-lab: com crear un wiki en 20 minuts
5. Exemples d'aplicacions amb TurboGears
6. Conclusions
TurboGears, framework de Python per aplicacions web 3
4. Qu竪 辿s TurboGears?
TurboGears 辿s un framework web basat en
Python, un mega-framework
Comparable a Ruby On Rails i CakePHP
Permet construir aplicacions web orientades a
bases de dades
Constru誰t amb arquitectura MVC
Codi obert (llic竪ncia MIT, compatible GPL)
Multiplataforma
Projecte amb gaireb辿 5 anys de vida
Versi坦 estable 1.0.8
Versi坦 2.0 en beta 4
TurboGears, framework de Python per aplicacions web 4
5. I un framework?
I un framework?
A software framework is an abstraction in which
common code providing generic functionality can
be selectively overridden or specialized by user
code providing specific functionality. ... the overall
program's flow of control is not dictated by the
caller, but by the framework. This inversion of
control is the distinguishing feature of software
frameworks. [Wikipedia]
Un framework 辿s una pe巽a de programari
sobre el que pugem els desenvolupadors per
aprofitar funcionalitats comuns
pugem = Inversion of Control!
No hem de reinventar la roda!
A la prctica = un esquelet en que basar-te
TurboGears, framework de Python per aplicacions web 5
6. Model-Vista-Control (MVC)
El MVC 辿s un patr坦 arquitect嘆nic de l'enginyeria del
programari
Busca la separaci坦 de components per simplificar les
aplicacions
Independitza la presentaci坦 de les dades
Parts:
Model: s'encarrega de la persist竪ncia, la base de dades
Vista: la UI del client, la capa de presentaci坦
Control: la l嘆gica del servidor
TurboGears, framework de Python per aplicacions web 6
7. Flux del Model-Vista-Control (MVC)
L'usuari interactua amb la interf鱈cie grfica
dissenyada a la vista
El control manega l'entrada de l'usuari, redirigint la
petici坦 a una pe巽a de codi m辿s espec鱈fica
El control actualitza la informaci坦 del model
La vista utilitza el model per generar la nova
interf鱈cie d'usuari
La interf鱈cie resta a l'espera de l'acci坦 de l'usuari
TurboGears, framework de Python per aplicacions web 7
8. Components, components i components
Client-side JavaScript
Mochikit
Template engine
Kid
Servidor d'aplicacions
CherryPy
Abstracci坦 base de dades (ORM)
SQLObject
I molts m辿s...
FormEncode, Nose, simplejson,
SQLAlchemy, Genshi, Identity
Management...
TurboGears, framework de Python per aplicacions web 8
9. Model-Vista-Control (MVC) i
l'estructura de TurboGears
Filosofia Jack el
Destripador:
anem per parts
En cada component
es poden utilitzar
diverses solucions
TurboGears, framework de Python per aplicacions web 9
10. Model-Vista-Control (MVC) i
l'estructura de TurboGears
Filosofia Jack el
Destripador:
anem per parts
En cada component
es poden utilitzar
diverses solucions
TurboGears, framework de Python per aplicacions web 10
11. Hands-on-lab: un wiki en 20 minuts
Demostraci坦 prctica del funcionament de
TurboGears
Desenvoluparem una aplicaci坦 web que ens doni
la funcionalitat de wiki:
Guardar informaci坦 per paraules
Fcil edici坦 de continguts
Reconeixement de sintaxis CamelCase (per enlla巽os)
URLs boniques
Sortida en XML/JSON
Ginys a la interf鱈cie en AJAX
TurboGears, framework de Python per aplicacions web 11
12. Hands-on-lab: requeriments
Els requeriments per realitzar aquesta demo s坦n:
TurboGears 1.0.x
GNU/Linux, MacOSX o Windows
Python >= 2.3.x, <= 2.5.x (no 2.6 ni 3k)
Connexi坦 a internet (easy_install)
Base de dades (MySQL, SQLite, PostgreSQL...)
Opcionalment, un IDE per Python
Eclipse
EasyEclipse for Python
VIM
TurboGears, framework de Python per aplicacions web 12
13. Hands-on-lab: passos que seguirem
1. Crear l'esquelet de l'aplicaci坦 (quickstart)
2. Definir el model de dades
Crear la base de dades
Escriure dades de mostra
3. Escriure les plantilles de la vista
4. Escriure el controlador en Python
5. Rubricar amb JSON i AJAX
TurboGears, framework de Python per aplicacions web 13
14. QuickStart: obrint el past鱈s
Crear un esquelet de projecte des de zero
$ tg-admin quickstart
Enter project name: gplWiki20
Enter package name [wiki20]: gplWiki20
Do you need Identity (usernames/passwords) in this
project? [no] no
...output...
cd gplWiki20
Amb aix嘆 ja tenim un esquelet d'aplicaci坦 web
totalment funcional
TurboGears, framework de Python per aplicacions web 14
15. I no fa falta servidor web?
Als requeriments, no hi ha servidor web!!!
CherryPy ja est integrat amb TurboGears
Per arrancar l'aplicaci坦:
cd gplWiki20
python start-gplwiki20.py
Punt d'entrada -> http://localhost:8080
Tant senzill com aix嘆!
TurboGears, framework de Python per aplicacions web 15
16. Llei del m鱈nim esfor巽: definint el
model via ORM
Model centralitzat en un fitxer:
gplwiki20/model.py
Definim la entitat Page:
class Page(SQLObject):
pagename = UnicodeCol(alternateID=True,length=30)
data = UnicodeCol()
Amb aquesta definici坦 d'SQLObject en tenim prou
(Vigilar amb els tabuladors, que formen part de la
sintaxi del Python!)
TurboGears, framework de Python per aplicacions web 16
17. Creaci坦 de les taules a la base de dades
Primer hem de configurar la base de dades
Dos fitxers de configuraci坦 espec鱈fics, desenvolupament
(dev.cfg) i per producci坦 (prod.cfg)
Fitxer dev.cfg
sqlobject.dburi="mysql://us:pwd@localhost/gplWiki20"
Crear la base de dades en si
echo "create database gplWiki20" | mysql -u root
Sou SQL-desconfiats? Anem a veure que executar:
tg-admin sql sql
Ara, a crear taules en una comanda:
tg-admin sql create
TurboGears, framework de Python per aplicacions web 17
18. Utilizant dummies pels crash-tests
La informaci坦 per proves es pot entrar fcilment des
de la toolboox de TurboGears
tg-admin toolbox
Ens portar a http://localhost:7654/
Anar a CatWalk
Clic a Page
Add Page amb el nom FrontPage
El toolbox pot ajudar per moltes m辿s coses:
Informaci坦 de TurboGears (paquets, versions...)
WidgetBrowser, veure les capacitats dels widgets (!!!!)
admin18n, eina d'administraci坦 d'strings i18n
ModelDesigner, GUI per generar el model.py
TurboGears, framework de Python per aplicacions web 18
19. Treballant amb templates
*.kid i els altres templates es poden obrir
directament en un navegador!
Per tant, poden ser editades pels dissenyadors
web amb les seves aplicacions super-cool!
Nom辿s s'ha d'anar amb compte de posar el
text d'exemple
<span py:replace="page.pagename">Text de la
pgina</span>
TurboGears, framework de Python per aplicacions web 19
20. L'aparen巽a tamb辿 compta (templates)
Crear el template a partir de l'esquelet
cp gplWiki20/templates/welcome.kid
gplWiki20/templates/page.kid
Editar gplwiki20/templates/page.kid amb:
<title> ${page.pagename} - 20 Minute Wiki </title>
...
<div class="main_content">
<div style="float:right; width: 10em">
Viewing <span py:replace="page.pagename">Text de
la pgina</span>
<br/>
You can return to the <a href="/">FrontPage</a>.
</div>
<div py:replace="XML(data)">Page text here.</div>
</div>
TurboGears, framework de Python per aplicacions web 20
21. Per嘆 la pot竪ncia sense control no
serveix de res
Escriurem el controlador: gplwiki20/controllers.py
import turbogears
from turbogears import controllers, expose
from gplwiki20.model import Page
from docutils.core import publish_parts
class Root(controllers.RootController):
@expose(template="gplwiki20.templates.page") #1
def index(self , pagename="FrontPage"): #2
page = Page.byPagename(pagename) #3
content = publish_parts(page.data,
writer_name="html")['html_body'] #4
return dict(data=content, page=page) #5
Observeu que sense fer res s'ha recarregat el
servidor web i els canvis ja seran visibles!
TurboGears, framework de Python per aplicacions web 21
22. Per嘆 la pot竪ncia sense control no
serveix de res Edici坦 de pgines
Crear el template a partir del page.kid
cp gplWiki20/templates/page.kid
gplWiki20/templates/edit.kid
Editar gplwiki20/templates/edit.kid amb:
<title> Editant ${page.pagename} ... </title>
...
<div class="main_content">
...
<form action="save" method="post">
<input type="hidden" name="pagename"
value="${page.pagename}"/>
<textarea name="data" py:content="page.data"
rows="10" cols="60"/>
<input type="submit" name="submit" value="Save"/>
</form>
<!-- Eliminar <div py:replace="XML(data)">Text de la
pgina.</div> -->
</div>
TurboGears, framework de Python per aplicacions web 22
23. Per嘆 la pot竪ncia sense control no
serveix de res Edici坦 de pgines II
Crear el m竪tode d'acci坦 a controllers.py
@expose("gplwiki20.templates.edit")
def edit(self, pagename):
page = Page.byPagename(pagename)
Tab! return dict(page=page)
Crear el m竪tode de guardar a controllers.py
@expose()
def save(self, pagename, data, submit):
page = Page.byPagename(pagename)
page.data = data
turbogears.flash("Changes saved!")
raise turbogears.redirect("/",pagename=pagename)
Afegir l'enlla巽 a page.kid
<p>
<a href="${tg.url('/edit',pagename=page.pagename)}">
Editar la pgina</a>
</p>
TurboGears, framework de Python per aplicacions web 23
24. Per嘆 la pot竪ncia sense control no
serveix de res Llistat de pgines
Crear el template a partir del page.kid
cp gplWiki20/templates/page.kid
gplWiki20/templates/pagelist.kid
Editar gplwiki20/templates/pagelist.kid amb:
<title> Llistat </title>
...
<div class="main_content">
<h1>Totes les pgines</h1>
<ul>
<li py:for="pagename in pages">
<a href="${tg.url('/' + pagename)}"
py:content="pagename">Nom de la pgina.</a>
</li>
</ul>
</div>
TurboGears, framework de Python per aplicacions web 24
25. Per嘆 la pot竪ncia sense control no
serveix de res Llistat de pgines II
Crear el m竪tode d'acci坦 a controllers.py
@expose("gplwiki20.templates.pagelist")
def pagelist(self):
pages = [page.pagename for page in
Tab! Page.select(orderBy=Page.q.pagename)]
return dict(pages=pages)
Afegir l'enlla巽 a master.kid
...
<div id="footer">
...
<p>Veure la <a href="${tg.url('/pagelist')}">llista
completa de pgines.</a></p>
...
TurboGears, framework de Python per aplicacions web 25
26. Les URLs entren pels ulls
Actualment per accedir a les pgines:
http://localhost:8080/?pagename=FrontPage
No 辿s molt bonic no?? Potser millor
http://localhost:8080/FrontPage
Definim el m竪tode per defecte a controllers.py
@expose()
def default(self, pagename):
Tab! return self.index(pagename)
Al m竪tode save canviem
raise turbogears.redirect("/", pagename=pagename)
per
raise turbogears.redirect("/%s" % pagename)
TurboGears, framework de Python per aplicacions web 26
27. Creant les petjades dels camells
Senzillament podem tenir sintaxis CamelCase, a
trav辿s d'expressions regulars (al principi de
controllers.py)
import re
wikiwords = re.compile(r"b([A-Z]w+[A-Z]+w+)")
Modifiquem
def index(self, pagename="FrontPage"):
content = ...
root = str(turbogears.url('/'))
content = wikiwords.
sub(r'<a href="%s1">1</a>'
% root, content)
return dict(data=content, page=page)
TurboGears, framework de Python per aplicacions web 27
28. I si les coses no van b辿?
Si la pgina no existeix, la crearem (controllers.py):
@expose("gplwiki20.templates.edit")
def notfound(self, pagename):
page = Page(pagename=pagename, data="")
return dict(page=page)
Si la pgina no existeix, la crearem (controllers.py):
@expose(template="gplwiki20.templates.page")
def index(self, pagename="FrontPage"):
try:
page = Page.byPagename(pagename)
except SQLObjectNotFound:
raise turbogears.redirect("notfound"
, pagename = pagename)
...
I un header per incloure l'excepci坦
from sqlobject import SQLObjectNotFound
TurboGears, framework de Python per aplicacions web 28
29. Necessitem ser oberts i comunicar-nos
Podem generar informaci坦 a XML, JSON...
@expose("gplwiki20.templates.pagelist")
@expose("json")
def pagelist(self):
URL per format JSON:
http://localhost:8080/pagelist?tg_format=json
M辿s senzill impossible!
TurboGears, framework de Python per aplicacions web 29
30. Necessitem ser fashions (AJAX+JavaScript)
TurboGears utilitza Mochikit per JavaScript
Afegir al fitxer gplwiki20/config/app.cfg
tg.include_widgets = ['turbogears.mochikit']
Reiniciar l'aplicaci坦!
Afegir els ids on volem tenir AJAX, al master.kid
<div id="footer">
<p>Veure la <a id="pagelist"
href="${tg.url('/pagelist')}">completa de
pgines.</a></p>
<div id="pagelist_results"></div>
...
TurboGears, framework de Python per aplicacions web 30
31. Necessitem ser fashions (AJAX+JavaScript)
Script JavaScript per reconstruir la llista de pgines,
al fitxer master.kid:
...
</style>
<script type="text/javascript">
addLoadEvent(function(){
connect($('pagelist'),'onclick', function (e) {
e.preventDefault();
var d = loadJSONDoc("${tg.url('/pagelist', tg_format='json')}");
d.addCallback(showPageList); });});
function showPageList(result) {
var currentpagelist = UL(null, map(row_display,result["pages"]));
replaceChildNodes("pagelist_results", currentpagelist);}
function row_display(pagename) {
return LI(null, A({"href" : "${tg.url('/')}" +pagename},
pagename))}
</script>
TurboGears, framework de Python per aplicacions web 31
32. Beneficis de TurboGears
Desenvolupament local
No s'ha de pujar l'aplicaci坦 a cap servidor
Temps entre proves m鱈nim!
No s'ha de compilar res
CherryPy est叩 pendent dels canvis dels fitxers i
automticament recarrega el servidor quan els fitxers
font han canviat
Consultes i actualitzacions a la BD senzilles
No es necessari escriure SQL
Per嘆 es poden escriure, si 辿s necessari
Els templates s坦n visualitzables al navegador
Evita la programaci坦 a cegues
Ahh!! I els widgets! http://localhost:7654/widgets/
TurboGears, framework de Python per aplicacions web 32
33. Exemples d'aplicacions TurboGears
Pyndorama - http://code.google.com/p/pyndorama/
WhatWhat Status -
http://code.google.com/p/whatwhat-status/
VotingPlace.net - http://votingplace.net/
Doggdot - http://doggdot.us/
Showmedo - http://showmedo.com/
GeneSilico - http://genesilico.pl/toolkit/
PairWise Neighbours -
http://genomes.urv.cat/pwneigh/
TurboGears, framework de Python per aplicacions web 33
34. Agra誰ments
Comunitat TurboGears
Presentaci坦 basada en:
Documentaci坦 TurboGears
Documentaci坦 d'Stefano Zacchiroli i Christopher Arndt
GPLTarragona
TurboGears, framework de Python per aplicacions web 34