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

De Cacauet Wiki
Salta a la navegació Salta a la cerca
Línia 33: Línia 33:
 
**First Pyramid app: http://docs.pylonsproject.org/projects/pyramid/en/1.2-branch/narr/firstapp.html#firstapp-chapter
 
**First Pyramid app: http://docs.pylonsproject.org/projects/pyramid/en/1.2-branch/narr/firstapp.html#firstapp-chapter
 
**Primer projecte Pyramid: http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/project.html?awesome
 
**Primer projecte Pyramid: http://docs.pylonsproject.org/projects/pyramid/en/latest/narr/project.html?awesome
**'''Estructura d'arxius Pyramid'''. Els scaffolds per Pyramid no van com indiquen els tutorials (v.2.7 de python). Pots descarregar [[Fitxer:Myapp.tgz]] aquesta plantilla per Pyramid i canviant totes les cadenes "myapp" que trobis (particularment en development.ini). Els següents links no van del tot bé però la doc serveix:
 
**:<strike>Scaffolds (1r projecte): http://docs.pylonsproject.org/projects/pyramid/en/1.2-branch/narr/project.html#project-narr</strike>
 
**:<strike>Paster (Pylons) i .ini file: http://docs.pylonsproject.org/projects/pyramid/en/1.2-branch/narr/paste.html</strike>
 
 
**WSGI integració de Pyramid (Pylons) amb Apache: http://code.google.com/p/modwsgi/wiki/InstallationInstructions
 
**WSGI integració de Pyramid (Pylons) amb Apache: http://code.google.com/p/modwsgi/wiki/InstallationInstructions
 
* Més Pyramid:
 
* Més Pyramid:
Línia 78: Línia 75:
 
** Per gravar la key en fitxer: http://stackoverflow.com/questions/9197507/saving-rsakeys-to-a-file-using-pycrypto
 
** Per gravar la key en fitxer: http://stackoverflow.com/questions/9197507/saving-rsakeys-to-a-file-using-pycrypto
 
* ...
 
* ...
 
== Virtualenv ==
 
Resulta convenient disposar d'un entorn on poguem tenir les versions de Python que ens interessi i que no siguin les del sistema. Virtualenv ens pot ajudar.
 
...TODO...
 
<br>
 
 
== Paste script per desenvolupament i desplegament ==
 
...TODO...
 
 
== Per començar un buildout ==
 
El buildout ens permet descarregar els paquets en versions concretes per no dependre del sistema on tenim l'aplicació instal·lada.
 
 
Link principal: [http://www.buildout.org/install.html]
 
 
#Instal·lar virtualenv i fer source del activate
 
# Instal·lar setuptools (a.k.a. easy_install, que descarrega programari de Pypi):
 
#* Amb un package de sistema:<pre>sudo apt-get install python-setuptools</pre>
 
#* Descarregant i executant el script <code>ez_setup.py</code> de http://peak.telecommunity.com/
 
# Actualitzar la darrera versió del "distribute":
 
#*http://pypi.python.org/pypi/distribute/#downloads
 
#*:$ wget http://python-distribute.org/distribute_setup.py
 
#*:$ python distribute_setup.py
 
#*També es podria fer instal·lant un package del sistema, però podem tenir problemes de dependències després.
 
# Creem el projecte<pre>$ buildout init</pre>
 
#Iniciem el bootstrap:<pre>$ python bootstrap.py</pre>
 
#Activem la descàrrega i instal·lació:<pre>$ bin/buildout -v</pre>
 
#...
 

Revisió del 21:28, 3 set 2012

Python és un llenguatge interpretat i completament orientat a objectes. Les seves principals aplicacions son:

  • Aplicacions web
  • Aplicacions d'escriptori (com GNOME, etc.)

Google ha impulsat molt la seva utilització. És més segur que altres llenguatges com PHP.

Primeres passes amb Python

...

Instal·lació en Apache2 amb mòdul WSGI

Per poder utiltizar Python en Apache2 es pot fer de 2 maneres:

  • Com a script CGI i amb el mòdul libapache2-mod-python (desaconsellat)
  • Com a script WSGI, que és el standard per Python. Els detalls a continuació son per aquesta versió.

Per tant:

  1. Instal·la el mòdul WSGI
  2. Segons el fòrum anterior s'instal·la de manera que els scripts s'executen si tenen l'extensió .wsgi
    • Pots afegir l'extensió .py alhora que la .wsgi per executar scripts Python en Apache.
  3. Segueix el tutorial per posar en marxa la primera aplicació Python-WSGI
    • http://webpython.codepoint.net/wsgi_tutorial
    • En aquest tutorial es posa en marxa el servidor des de la línia de comandes. El entorn wsgi ens permet executar l'aplicació mitjançant un servidor httpd propi (sense Apache) i accedint a un port particular. Si vols executar-ho en l'entorn Apache has de treure la crida a httpd.handle_request o httpd.serve_forever i posar-ho en un directori visible per l'Apache (/var/www o com ho tinguis configurat).


Més Python

Web services: Cornice

Package: Cornice

  • Treballarem amb JSON: wikipedia i json.org. Java utilitza XMLRPC, i Microsfot SOAP.
  • Doc.oficial: http://packages.python.org/cornice/
  • Interessant i essencial el "Quick Start for people in a hurry" (emmagatzema objectes JSON), però hi ha un error: on diu _VALUES.set(...) en realitat ha de ser:
    _VALUES[key] = json.loads(request.body)
  • També necessitarem CURL (amb apt-get). Consulta el man o també online: http://curl.haxx.se/docs/manpage.htm
    • OJU amb JSON i curl, les cometes han de ser simples per tot el objecte JSON i dobles pels elements:
      $ curl http://el/meu/servei -d '{"nom1":"valor1",...}'
    • Més opcions curl: -X {GET|POST|PUT}
  • Llibreria PycURL: http://pycurl.sourceforge.net/ ens permet fer crides des de python amb cURL.
    • Oju: s'ha d'instal·lar al sistema (o al virtualenv) i cal afegir prèviament els paquets: python2.?-dev i libcurl4-gnutls-dev
    • Després ja es pot instal·lar amb
      $ easy_install pycurl
  • Millor que pycurl és urllib que ja està al sistema i per fer el fet anirem més ràpids
  • ...


Criptografia