Diferència entre revisions de la pàgina «Pyramid en Google App Engine»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
Línia 3: Línia 3:
  
 
== Intro ==
 
== Intro ==
Treballarem amb el [[Buildout]] igual que hem fet amb la resta de projectes.
+
Treballarem amb el [[Buildout]] i el ''scaffold'' de Pyramid per GAE.
  
* Principal: http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/
+
* '''Tutorial Pyramid amb Buildout per GAE''': http://docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/deployment/gae_buildout.html
* Tutorial amb Buildout: 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.
 
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: <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ó 3''': un cop creat el ''buildout'', canviar la versió del appengine-sdk. Anar a ''buildout.cfg'':<pre>ae-sdk-version=1.8.5</pre>
 +
*: ...posant la darrera versió que trobem [https://developers.google.com/appengine/downloads#Google_App_Engine_SDK_for_Python a la pàgina oficial de GAE].
 +
 
<br>
 
<br>
 
  
 
== Utilitzant Mako ==
 
== Utilitzant Mako ==

Revisió del 13:26, 1 oct 2013

Crearem un projecte Python: Pyramid framework per instal·lar-ho després al Google App Engine (GAE).

Intro

Treballarem amb el Buildout i el scaffold de Pyramid per GAE.

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.


Utilitzant Mako

Si volem utilitzar les plantilles Mako (que són les que hem utilitzat des del principi) caldrà fer alguns ajustos al tutorial anterior:

ULL: si afegim noves plantilles al projecte cal refer el buildout amb:
$ 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