Diferència entre revisions de la pàgina «Pyramid en Google App Engine»
Línia 15: | Línia 15: | ||
=== Troubleshooting === | === Troubleshooting === | ||
Hi ha diverses maneres d'arreglar-ho: | Hi ha diverses maneres d'arreglar-ho: | ||
− | * '''Sol·lució 1''': descarregar la versió correcta del pyramid_appengine amb: <pre>$ pip install pyramid_appengine=0.8.2-a2</pre> | + | * '''Sol·lució 1''': descarregar la versió correcta del pyramid_appengine amb: <pre>$ pip install pyramid_appengine==0.8.2-a2</pre> |
* '''Sol·lució 2''': instal·lar el pip darrera versió de http://www.pip-installer.org (veure apartat install). Això no ens assegura, però que ens descarregui correctament la darrera versió de pyramid_appengine. | * '''Sol·lució 2''': instal·lar el pip darrera versió de http://www.pip-installer.org (veure apartat install). Això no ens assegura, però que ens descarregui correctament la darrera versió de pyramid_appengine. | ||
* '''Sol·lució 3''': un cop creat el ''buildout'', canviar la versió del appengine-sdk. Anar a ''buildout.cfg'':<pre>ae-sdk-version=1.8.5</pre> | * '''Sol·lució 3''': un cop creat el ''buildout'', canviar la versió del appengine-sdk. Anar a ''buildout.cfg'':<pre>ae-sdk-version=1.8.5</pre> | ||
Línia 21: | Línia 21: | ||
<br> | <br> | ||
− | |||
== Creant views al projecte == | == Creant views al projecte == |
Revisió del 21:55, 1 oct 2013
Crearem un projecte Python: Pyramid framework per instal·lar-ho després al Google App Engine (GAE).
Contingut
Instal·lant la plantilla de projecte
Treballarem amb el Buildout i el scaffold de Pyramid per GAE.
- Tutorial Pyramid amb Buildout per GAE: http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/deployment/gae_buildout.html
- Instal·lador PIP per Python (més modern que easy_install): http://www.pip-installer.org
- Caldrà crear un virtualenv
Seguint els passos d'aquest tutorial podem posar en marxa el nostre primer projecte.
OJU: poden aparèixer problemes de versions (al menys en Ubuntu 12.04) que cal arranjar del tutorial. La versió del pyramid_appengine (paquet amb la plantilla del buildout) no baixa en la seva darrera versió en algunes ocasions.
Troubleshooting
Hi ha diverses maneres d'arreglar-ho:
- Sol·lució 1: descarregar la versió correcta del pyramid_appengine amb:
$ pip install pyramid_appengine==0.8.2-a2
- Sol·lució 2: instal·lar el pip darrera versió de http://www.pip-installer.org (veure apartat install). Això no ens assegura, però que ens descarregui correctament la darrera versió de pyramid_appengine.
- Sol·lució 3: un cop creat el buildout, canviar la versió del appengine-sdk. Anar a buildout.cfg:
ae-sdk-version=1.8.5
- ...posant la darrera versió que trobem a la pàgina oficial de GAE.
Creant views al projecte
Per veure com utilitzar Pyramid podeu llegir Pyramid: arquitectura.
Activant plantilles Mako
Si volem utilitzar les plantilles Mako (que són les que hem utilitzat des del principi) caldrà fer alguns ajustos al projecte generat:
$ bin/buildout -v
__init__.py
Afegirem a la funció make_app():
...
__here__ = os.path.dirname(os.path.abspath(__file__))
...
def make_app():
...
settings = {}
settings['mako.directories'] = os.path.join(__here__, 'templates')
config = Configurator( root_factory=Root, settings=settings )
...
# afegim la url "/home" (sense decorators ni scan)
config.add_route( "home", "/home" )
config.add_view( views.home_view, route_name="home", renderer="main.mako" )
# OJU: el config.scan() no li agrada al GAE!!
views.py
Afegirem les views pertinents:
# OJU: al GAE no li agraden els decorators @view_config !!!
def home_view( request ):
return {"project":"gapp1"}
templates/main.mako
<html>
<head>
<title>${project}</title>
</head>
<body>
<h1>Projecte ${project}</h1>
<p>Aviam que tal va aixo...</p>
</body>
</html>
Afegir plantilles
Quan afegim una nova plantilla .mako cal refer el projecte, ja que els arxius s'han de traslladar al directori "parts":
$ bin/buildout -v