Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Spanish (5th ed.): small corrections

  • Loading branch information...
commit 9ce849daaf0d6cdaf0c57b3c106be107ec592414 1 parent a64ad53
@spametki spametki authored
View
2  sources/36-web2py-spanish-translation-in-progress/00.markmin
@@ -13,7 +13,7 @@ Como verás a lo largo de los capítulos que siguen, ``web2py`` intenta bajar la
''Fácil uso''. Esto implica reducir el tiempo empleado en aprender y desplegar así como también los costos de desarrollo y mantenimiento. Es por esto que ``web2py`` es un marco completamente integrado y sin dependencias. No requiere de instalación y no tiene archivos de configuración. Todo funciona instantáneamente, incluyendo un servidor web, la base de datos y un entorno de desarrollo para navegador que provee de acceso a las características principales. La API incluye solamente 12 objetos del núcleo, que son fáciles de usar y memorizar. Puede interactual con la mayor parte de los servidores web y bases de datos y con todas librerías de Python.
-''Desarrollo ágil''. Cada función de ``web2py`` tiene un comportamiento por defecto (que se puede sobreescribir). Por ejemplo, ni bien hayas especificado tus modelos de datos, tendrás acceso a la interfaz administrativa de la base de datos para navegador. Además, ``web2py`` genera automáticamente los formularios para tus datos y te permite exponer fácilmente los datos en HTML, XML, JSON, RSS, etc. ``web2py`` provee de algunos widget de nivel alto como la wiki y el grid para crear aplicaciones avanzadas rápidamente.
+''Desarrollo ágil''. Cada función de ``web2py`` tiene un comportamiento por defecto (que se puede sobreescribir). Por ejemplo, ni bien hayas especificado tus modelos de datos, tendrás acceso a la interfaz administrativa de la base de datos para navegador. Además, ``web2py`` genera automáticamente los formularios para tus datos y te permite exponer fácilmente los datos en HTML, XML, JSON, RSS, etc. ``web2py`` provee de algunos widget de alto nivel como la wiki y el grid para crear aplicaciones avanzadas rápidamente.
''Seguridad''. La Capa de Abstracción de la Base de Datos (DAL) elimina las inyecciones de SQL. El lenguaje de plantillas previene las vulnerabilidades de secuencia de comandos en sitios cruzados o (''Cross Site Scripting''). Los formularios generados por ``web2py`` proveen de validación de campos y bloquean las falsificaciones de solicitud en sitios cruzados (CSRF). Las contraseñas siempre se almacenan codificadas. Las sesiones se almacenan del lado del servidor para prevenir la manipulación de los cookie (''Cookie Tampering''). Los cookie se identifican con UUID para evitar el secuestro de sesiones o ''Session Hijacking''.
View
2  sources/36-web2py-spanish-translation-in-progress/03.markmin
@@ -88,7 +88,7 @@ Cuando creas una nueva aplicación utilizando **admin**, esta se instala como un
-----
-----
-web2py también viene con un **asistente**, descripto más adelante en este capítulo, que puede escribir código alternativo de andamiaje automáticamente basado en plantillas y plugins disponibles en la web y basándose en descripciones de nivel alto de los modelos.
+web2py también viene con un **asistente**, descripto más adelante en este capítulo, que puede escribir código alternativo de andamiaje automáticamente basado en plantillas y plugins disponibles en la web y basándose en descripciones de alto nivel de los modelos.
-----
### Ejemplos sencillos
View
20 sources/36-web2py-spanish-translation-in-progress/08.markmin
@@ -34,7 +34,7 @@ Para tareas de depuración puedes establecer
``
mail.settings.server = 'logging'
``:code
-y los correos no se enviaran sino que se agregarán al registro de la consola (log).
+y los correos no se enviaran sino que se agregarán al historial (''log'') de la consola.
-------
@@ -260,14 +260,14 @@ Ahora, necesitamos un script de procesamiento que lea la cola y envíe los corre
## in file /app/private/cola_mails.py
import time
while True:
- rows = db(db.cola.estado=='pendiente').select()
- for row in rows:
- if mail.send(to=row.direccion,
- subject=row.asunto,
- message=row.mensaje):
- row.update_record(estado='enviado')
+ registros = db(db.cola.estado=='pendiente').select()
+ for registro in registros:
+ if mail.send(to=registro.direccion,
+ subject=registro.asunto,
+ message=registro.mensaje):
+ registro.update_record(estado='enviado')
else:
- row.update_record(estado='falla')
+ registro.update_record(estado='falla')
db.commit()
time.sleep(60) # comprobar cada minuto
``:code
@@ -345,7 +345,7 @@ nuevos = imapdb(q).count()
Puedes recuperar los mensajes de la consulta anterior con
``
-registros = imapdb(q).select()
+mensajes = imapdb(q).select()
``:code
@@ -361,7 +361,7 @@ Para realizar consultas de mensajes más eficientes, es recomendable especificar
``
fields = ["INBOX.uid", "INBOX.sender", "INBOX.subject", "INBOX.created"]
-registros = imapdb(q).select(*fields)
+mensajes = imapdb(q).select(*fields)
``:code
El adaptador sabe cómo recuperar secciones parciales de los mensajes (algunos campos como por ejemplo ``content``, ``size`` y ``attachments`` requieren la descarga completa de los datos del mensaje)
Please sign in to comment.
Something went wrong with that request. Please try again.