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 1: Línia 1:
Crearem un projecte [[Python: Pyramid framework]] per instal·lar-ho després al Google App Engine.
+
Crearem un projecte [[Python: Pyramid framework]] per instal·lar-ho després al Google App Engine (GAE).
 +
<br>
  
 
== Intro ==
 
== Intro ==
Línia 30: Línia 31:
 
     config = Configurator( root_factory=Root, settings=settings )
 
     config = Configurator( root_factory=Root, settings=settings )
 
     ...
 
     ...
     config.add_route( "home", "/home" ) # afegim la url "/home"
+
    # afegim la url "/home" (sense decorators ni scan)
     config.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!!
 
</syntaxhighlight>
 
</syntaxhighlight>
 
<br>
 
<br>
Línia 38: Línia 42:
 
Afegirem les views pertinents:
 
Afegirem les views pertinents:
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
from pyramid.view import view_config
+
# OJU: al GAE no li agraden els decorators @view_config !!!
 
 
@view_config( route_name="home", renderer="main.mako" )
 
 
def home_view( request ):
 
def home_view( request ):
 
     return {"project":"gapp1"}
 
     return {"project":"gapp1"}

Revisió del 17:16, 18 feb 2013

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

Intro

Treballarem amb el Buildout igual que hem fet amb la resta de projectes.

Seguint els passos d'aquest tutorial podem posar en marxa el nostre primer projecte.


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