Diferència entre revisions de la pàgina «Python: Pyramid framework»

De Cacauet Wiki
Salta a la navegació Salta a la cerca
Línia 1: Línia 1:
 +
Segons la introducció a la web de Pyramid:
 +
<table width="600">
 +
<tr><td bgcolor="#dddddd">
 +
'''Frameworks vs. Libraries'''
 +
 +
A framework differs from a library in one very important way: '''library code is always called by code that you write, while a framework always calls code that you write'''. Using a set of libraries to create an application is usually easier than using a framework initially, because you can choose to cede control to library code you have not authored very selectively. But when you use a framework, you are required to cede a greater portion of control to code you have not authored: code that resides in the framework itself. You needn’t use a framework at all to create a web application using Python. A rich set of libraries already exists for the platform. In practice, however, using a framework to create an application is often more practical than rolling your own via a set of libraries if the framework provides a set of facilities that fits your application requirements.
 +
</td></tr>
 +
</table>
 +
 +
Tal i com diu aquest enunciat, un ''framework'':
 +
* té el control principal de l'aplicació, que en un moment donat el cedeix al teu codi.
 +
* incialment aparenta ser més complex que utilizar una llibreria.
 +
* finalment facilita molt el desenvolupament d'aplicacions.
 +
 
Intro:
 
Intro:
 +
* http://docs.pylonsproject.org/projects/pyramid/en/1.4-branch/narr/introduction.html
 
* Pylons + repoze.bfg = Pyramid
 
* Pylons + repoze.bfg = Pyramid
 
* Traversal vs. url_dispatcher
 
* Traversal vs. url_dispatcher
 
* Estructura típica dels arxius en una web amb Pyramid (models, __init__, views, etc.)
 
* Estructura típica dels arxius en una web amb Pyramid (models, __init__, views, etc.)
 +
 +
<br>
  
 
== Fase de desenvolupament ==
 
== Fase de desenvolupament ==
Línia 16: Línia 33:
 
* Pyramid ''scaffolds'' (esquelet de projecte): http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/project.html
 
* Pyramid ''scaffolds'' (esquelet de projecte): http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/project.html
  
Exercicis:
+
== Exercicis ==
 
# Instal·lar el virtualenv com es descriu en el link anterior.
 
# Instal·lar el virtualenv com es descriu en el link anterior.
 
# Crear el primer projecte Pyramid "single-file" (tasks).
 
# Crear el primer projecte Pyramid "single-file" (tasks).
 
# Crear un projecte Pyramid ("pyramidproject1") amb scaffolds (crear la plantilla que ve per defecte i arrencar el servidor).
 
# Crear un projecte Pyramid ("pyramidproject1") amb scaffolds (crear la plantilla que ve per defecte i arrencar el servidor).
 
# Passar el projecte "tasks" al "pyramidproject1".
 
# Passar el projecte "tasks" al "pyramidproject1".
 +
 +
<br>
  
 
== Fase de deployment (desplegament, producció) ==
 
== Fase de deployment (desplegament, producció) ==

Revisió del 09:30, 14 nov 2012

Segons la introducció a la web de Pyramid:

Frameworks vs. Libraries

A framework differs from a library in one very important way: library code is always called by code that you write, while a framework always calls code that you write. Using a set of libraries to create an application is usually easier than using a framework initially, because you can choose to cede control to library code you have not authored very selectively. But when you use a framework, you are required to cede a greater portion of control to code you have not authored: code that resides in the framework itself. You needn’t use a framework at all to create a web application using Python. A rich set of libraries already exists for the platform. In practice, however, using a framework to create an application is often more practical than rolling your own via a set of libraries if the framework provides a set of facilities that fits your application requirements.

Tal i com diu aquest enunciat, un framework:

  • té el control principal de l'aplicació, que en un moment donat el cedeix al teu codi.
  • incialment aparenta ser més complex que utilizar una llibreria.
  • finalment facilita molt el desenvolupament d'aplicacions.

Intro:


Fase de desenvolupament

Virutalenv és una potent eina que ens permetrà no haver d'instal·lar cap package al sistema operatiu. Podrem tenir una versió "neta" del python, sense cap llibreria, i instal·lar el què volguem sense afectar el comportarment del sistema (i, per tant, sense afectar a altres funcionalitats com l'escriptori). Cal recordar que Python és un llenguatge que s'utilitza en el Gnome i altres escritporis per aplicacions "stand-alone", pel que la instal·lació de paquets per l'escriptri podria afectar-nos al desenvolupament web i viceversa.

Anem a pams:

Exercicis

  1. Instal·lar el virtualenv com es descriu en el link anterior.
  2. Crear el primer projecte Pyramid "single-file" (tasks).
  3. Crear un projecte Pyramid ("pyramidproject1") amb scaffolds (crear la plantilla que ve per defecte i arrencar el servidor).
  4. Passar el projecte "tasks" al "pyramidproject1".


Fase de deployment (desplegament, producció)

Apache i WSGI

Buildout

El buildout ens permet construir projectes amb divereses versions dels packages necessaris. Així no tindrem conflictes de diverses aplicacions en un mateix entorn de producció (passaria si instal·lessim els packages al sistema).

import sys
sys.setdefaultencoding('utf-8')