El documento describe Pl/Python, un lenguaje para escribir funciones en PostgreSQL usando Python. Pl/Python permite extender la funcionalidad de PostgreSQL a tareas como enviar correos, realizar cálculos avanzados e importar datos, que no se pueden hacer con Pl/PgSQL. También introduce conceptos básicos de Python como variables, condicionales, bucles y cadenas.
Esta es la presentación utilizada en curso de introducción a Python para alumnos de Ingeniería, se asume que el lector tiene ya algo de experiencia en programación.
Esta es la presentación utilizada en curso de introducción a Python para alumnos de Ingeniería, se asume que el lector tiene ya algo de experiencia en programación.
Estou citando aqui alguns dos comandos básicos ou não mais utilizados em Python, desde listas, blocos, entre outros. Tem também como reconhecer erros facilmente em seu código e uma conversão em dólar para ser trabalhada (iniciada).
Python: programacion para el Poder PopularFrancisco Palm
Argumentación sobre el uso de Python como una herramienta para la enseñanza masiva de la programación como componente esencial de una verdadera alfabetización tecnológica.
Instalar Python 2.7 y 3 en Windows (Anaconda)CAChemE
¿Cómo instalar Python en Windows?
Diapositivas que explican cómo instalar paso a paso Python en Windows.
Nota: Están orientadas a científicos e ingenieros con poca experiencia en el entorno de windows.
Una corta introducción a la forma de hacer negocios usando y creando Software Libre, además de los diferentes modelos de negocios diferenciandolo al movimiento del Open Source.
Manual de Como conformar cooperativas y consorcios, publicado por el Ministerio de la Producción, orientado a emrpesa agrarias pero con datos/reglas que valen a cualquier rubro de negocio.
Estou citando aqui alguns dos comandos básicos ou não mais utilizados em Python, desde listas, blocos, entre outros. Tem também como reconhecer erros facilmente em seu código e uma conversão em dólar para ser trabalhada (iniciada).
Python: programacion para el Poder PopularFrancisco Palm
Argumentación sobre el uso de Python como una herramienta para la enseñanza masiva de la programación como componente esencial de una verdadera alfabetización tecnológica.
Instalar Python 2.7 y 3 en Windows (Anaconda)CAChemE
¿Cómo instalar Python en Windows?
Diapositivas que explican cómo instalar paso a paso Python en Windows.
Nota: Están orientadas a científicos e ingenieros con poca experiencia en el entorno de windows.
Una corta introducción a la forma de hacer negocios usando y creando Software Libre, además de los diferentes modelos de negocios diferenciandolo al movimiento del Open Source.
Manual de Como conformar cooperativas y consorcios, publicado por el Ministerio de la Producción, orientado a emrpesa agrarias pero con datos/reglas que valen a cualquier rubro de negocio.
Gestión y Análisis de Datos para las Ciencias Económicas con Python y RFrancisco Palm
El desarrollo conjunto de Python y R representan probablemente el factor individual más decisivo en el futuro del análisis de datos y el cómputo numérico.
SEO on the Beach 2023 Alfonso Moure: IA como interfaz de programaciónAlfonso Moure Ortega
Mi presentación en el SEO on the Beach 2023, donde presento el uso de la IA como asistente de programación mediante el uso de Github Copilot.
También puedes encontrar el vídeo de la presentación aquí: https://www.youtube.com/live/qdVBoSeXogI?feature=share&t=5217.
Mini clase Intro Programación Python UTN Profesorado 2015Mariano Reingart
Introducción a la programación de computadoras con Python
Presentación del lenguaje de programación Python
Motivaciones y estudios relacionados
Descargas - Instalación
Estructuras básicas (condicionales, ciclos, funciones)
Demostración
Feedback
Bonus track (trabajo de los alumnos con raspberry pi, desarrollo web, niños)
Libro sobre exportación de servicios post Covid-19EQ SOFT EIRL
Este texto son las transcripciones de los casos de éxito en tecnología presentados en la conferencia "Exportación de Servicios Post Covid-19" realizada en Julio del 2020 por la Universidad San Ignacio de Loyola.
Un breve primer estudio sobre la participación de los peruanos en esta red social.
Logos Technology S.A.C. es una empresa especializada en Inteligencia Artificial y Ciencia de Datos, con base en Lima-Perú-
Centros Regionales de Innovación AplicadaEQ SOFT EIRL
Propuesta de generación de un ecosistema auto suficiente de desarrollo de negocios de base tecnológica aplicada a resolver problemas regionales que requieren de soluciones innovadoras.
EQ Soft: Soluciones de innovación agrariaEQ SOFT EIRL
Esta presentación muestra algunos de nuestros proyectos de innovación en el sector de agroindustria, contempla aplicación de robótica, internet of the farm e inteligencia artificial aplicadas a la gestión y mejora del proceso agricola.
Clusters Empresariales en LatinoaméricaEQ SOFT EIRL
Exposición realizada en Julio 2019 en la universidad UTEC, en ella comentamos las experiencias en el desarrollo de Cluster Empresariales en Perú y a nivel internacional.
Inteligencia Artificial en la Administración PúblicaEQ SOFT EIRL
Presentación realizada a funcionarios de administración pública sobre como aprovechar la Inteligencia Artificial con Logos en los servicios al ciudadano.
Inteligencia artificial para las empresas 2019EQ SOFT EIRL
Presentación del evento desarrollado en la ciudad de Tacna, en este documento explicamos que es y donde la IA ayuda a mejorar los procesos productivos empresariales.
Platique.me solución integral de Smart ChatBotEQ SOFT EIRL
Platique.me es la solución más avanzada de ChatBot del mercado, es más eficiente e inteligente que soluciones similares y capaz de integrarse con nuestro framework de Inteligencia Artificial.
Platique.me ahora escucha y habla, es la siguiente generación de herramientas de atención de contact centers.
Logos Dictados - solución de Speech to TextEQ SOFT EIRL
Dictados es la nueva herramienta de transcripción de audio a texto de Logos Technology. ideal en industria de seguridad, banca, atención al cliente final, call y contact center, etc.
Logos Biblios - Gestión de ConocimientosEQ SOFT EIRL
Biblios es una potente herramienta de aprendizaje sobre grandes volúmenes de textos.
Biblios lee y aprende casuísticas en grandes volúmenes documentales, se convierte en un soporte especializado en los temas que ha aprendido.
Gestione grandes cantidades de documentos con Biblios, converse de manera natural con su cerebro de IA sobre el conocimiento en ellos.
Logos, Framework de Inteligencia ArtificialEQ SOFT EIRL
Logos es un potente framework de Inteligencia Artificial, desarrollado enteramente bajo plataformas libres y sin costos ocultos se conveniente en la opción más conveniente para todas las empresas que desean entrar al mundo de la Inteligencia Artificial.
Logos: Framework de Inteligencia ArtificialEQ SOFT EIRL
Logos es un framework de Inteligencia Artificial, totalmente diseñado y producido por la empresa Logos Technology, implementando algoritmos propios y libres y usando técnicas avanzadas de análisis de datos.
Portafolio de Productos y Servicios de EqSoftEQ SOFT EIRL
Oferta comercial de EqSoft para el año 2018
- Inteligencia Artificial
- Big y Ciencia de Datos
- Robótica
- Industrial IoT
- Central de Proyectos de Software
3. ¿Que es Pl/Python?
●Es un lenguaje para escribir funciones
en PostgreSQL.
●Pero OjO ....... NO es un reemplazo a
SQL o PL/SQL.
●Es una manera de extender la
funcionalidad de PostgreSQL a labores
que no se pueden llevar a cabo con
Pl/PgSQL.
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 3/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
4. ¿Que no desde esperar de Pl/Python?
● Que sea más rápido para manipular data que
Pl/PgSQL.
● Que puedas levantar todas las librerías
habidas y por haber de Python para diversas
labores, quizás la mayoría si pero no todas.
● Ahorrar recursos de procesamiento/ram en el
servidor para tus funciones (procedimientos
almacenados).
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 4/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
5. ¿En que casos usar Pl/Python?
● Cuando se requiera realizar labores
extendidas en la base de datos, por ejemplo:
mandar correos, realizar cálculos
matemáticos avanzados, importar o generar
datos formateados de forma extraña, etc.
● Cuando sabes programar en Python y no en
Pl/Pgsql y no quieres aprender a programar
en otro lenguaje.
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 5/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
7. Conoce Python
Comandos básicos:
print “hola mundo” < imprime algo en la consola
A = 22 < crea la variable “A”
print A < imprime el valor almacenado
en la variable “A”
b=input(“dame #:”) < solicita en la consola
ingresar un valor y lo
guarda en la variable “b”
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 7/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
8. Conoce Python
(Los ... significan que debes presionar un “tab”)
a=3
if a < 3:
...print “es menor que 3”
else:
...print “es mayor o igual que 3”
presionar 2 veces “enter” en la ultima linmensaje:
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 8/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
9. Conoce Python
Para programar en Python es mejor utilizar un editor
de texto cualquiera o alguno especializado en este
lenguaje, grabar el programa como un archivo de
extensión “.py” (no obligatorio) y luego ejecutarlos
así:
python holamundo.py
El resultado lo veremos en la consola del sistema
operativo.
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 9/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
10. Conoce Python
Arreglos.
* Las “tuplas”, son conjuntos de datos como en una lista
pero es inmutable, no se puede añadir o borrar elementos.
A='a',2,'c',4
for valor in A:
...print valor
Los elementos entre paréntesis denotan una tupla dentro
de otra.
A='a',2,'c',4,('e',6)
for valor in A:
...print valor
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 10/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
11. Conoce Python
Arreglos.
* Los “diccionarios” son como los arreglos tradicionales,
tienen un índice y un valor como parte de su estructura, se
puede añadir y quitar datos.
Arreglo={'a':123,'b':'holaprint Arreglo['b']
mundo',3:122}
ahora veamos que obtenemos con esto:
for c in Arreglo:
...print c
Y ahora así:
for c in Arreglo:
...print Arreglo[c]
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 11/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
12. Conoce Python
El manejo de cadenas en Python es bastante avanzado y no
requiere funciones externas.
Concatenar:
a='hola' a='aaa'
b='mundo' a+='bbb'
print a+' '+b print a
Subcadena (el indice siempre empieza en 0):
a='hola mundo'
print a[3] < un dígito
print a[5:10] < una sección de cadena, como
“substr”
print a[5:] < desde la posición 5 hasta el
final de la cadena
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 12/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
13. Conoce Python
Subcadena (el indice siempre empieza en 0):
a='hola mundo'
print a[:5] < corta desde el inicio hasta la posición 5
print a[:5] < corta los últimos 5 caracteres de la cadena
print a[2:5] < corta desde la posición 2 hasta los 5
Últimos caracteres de una cadena
Una manera de armar cadenas formateadas es así:
X=12
Y=11
A=”el valor de X es: %d y de Y es:%d” % (X,Y)
print A
Len, retorna la cantidad de caracteres de una cadena
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 13/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
14. Conoce Python
Estructuras de control – WHILE:
X=10
Y=0
while Y < X:
...Y += 1
...print Y
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 14/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
15. Conoce Python
Estructuras de control – FOR:
for a in range(1,10): < ejecuta del 1 al 9
...print a
for a in range(10): < ejecuta del 0 al 9
...print a
En una lista de valores:
for a in (1,10,5,7): < puede ser una tupla o un
..print a diccionario
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 15/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
16. Conoce Python
Estructuras de control – FOR:
En un rango de números :
for a in range(1,10,2): <ejecuta del 1 al 9
...print a saltando de 2 en 2
for a in range(10,1,3): <ejecuta del 10 al 1
...print a saltando de 3 en 3
for a,b in ((1,4),(2,5),(3,6)): < solo se acepta
...print a valores
...print b numéricos
enteros
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 16/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
17. Conoce Python
Estructuras de control Break:
Permite salir de un loop
for c in range(1,10): < ejecuta del 1 al 6
...print c
...if c > 5:
......break
Estructuras de control Continue:
Permite volver a iterar sin ejecutar el código que
continua en el loop
for c in range(1,10): < ejecuta del 1 al 5
...if c > 5:
......continue
...print c
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 17/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
20. Pl/Python
Instalamos el Pl/Python:
sudo aptget install postgresqlplpython9.1
Creamos una DB parta trabajar:
createdb dbpython0 U USER_ADMIN_NAME
Instalamos el lenguaje en la DB:
createlang plpythonu python0 U USER_ADMIN_NAME
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 20/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
21. Pl/Python
Instalamos el Pl/Python:
sudo aptget install postgresqlplpython9.1
Creamos una DB parta trabajar:
createdb dbpython0 U USER_ADMIN_NAME
Instalamos el lenguaje en la DB:
createlang plpythonu python0 U USER_ADMIN_NAME
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 21/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
22. Pl/Python
Ahora a probarlo, en un editor de texto escriba
esto y lo grabamos como “ejemplo1.plpy” :
CREATE FUNCTION py_fecha ()
RETURNS integer
AS $$
import os
os.system("date >> /[RUTA]/fecha.txt")
return 1
$$ LANGUAGE plpythonu;
Creamos en /[RUTA] el file “fecha.txt” con:
touch fecha.txt
Chmod 777 fecha.txt < le damos todos los accesos
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 22/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
23. Pl/Python
Importamos nuestro script en la db:
[root@hostname]psql python0 U USER_NAME
python0=#i /[RUTA]/ejemplo1.plpy
Ejecutar la función creada:
python0=# select py_fecha();
py_fecha
1
Verificamos que paso (en consola):
[root@hostname]cat /[ruta]/fecha.txt
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 23/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
24. Pl/Python
Vamos a enviar un email.
Para ciertas funciones necesitamos instalar algunas
librerias adicionales de Python, en este caso
usaremos una llamada “smtplib” que ya viene
instalada por defecto.
Vamos a instalar un servidor de correos simple:
sudo aptget install exim4
El log del server podemos verlo así:
sudo tail f /var/log/exim4/mainlog
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 24/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
25. Pl/Python
Esta es nuestra función para enviar emails:
CREATE FUNCTION py_mail ()
RETURNS integer
AS $$
import smtplib
to="el_que_recibe@mail.com"
sender="el_que_envia@mail.com"
smtpserver = smtplib.SMTP("localhost")
smtpserver.ehlo()
smtpserver.ehlo
header = 'To:' + to + 'n' + 'From: '+ sender + 'n' + 'Subject:testn'
msg = header + 'n Mensaje de prueba nn'
smtpserver.sendmail(sender, to, msg)
smtpserver.close()
return 1
$$ LANGUAGE plpythonu;
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 25/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
26. Pl/Python
Ejecutamos la función y verificamos el log del EXIM4 para
ver si llego el email.
Algo así se verá:
2012-10-10 23:00:25 1TM9wf-0004nf-0o <= el_que_envia@mail.com
H=localhost ([127.0.1.1]) [127.0.0.1] P=esmtp S=381
2012-10-10 23:00:25 1TM9wf-0004nf-0o ** el_que_recibe@mail.com R=nonlocal:
Mailing to remote domains not supported
2012-10-10 23:00:25 1TM9wf-0004nh-In <= <> R=1TM9wf-0004nf-0o
U=Debian-exim P=local S=1201
2012-10-10 23:00:25 1TM9wf-0004nf-0o Completed
2012-10-10 23:00:25 1TM9wf-0004nh-In ** el_que_envia@mail.com R=nonlocal:
Mailing to remote domains not supported
2012-10-10 23:00:25 1TM9wf-0004nh-In Frozen (delivery error message)
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 26/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
27. Pl/Python
Ahora vamos a manipular datos.
Pl/Python requiere instalar la libreria de PostgreSQL para
Python (¿primer choque emocional?)
sudo aptget install pythonpygresql
Vamos a crear una tablita:
python0=# create table datos( numero int, texto char(10));
CREATE TABLE
python0=# insert into datos values (1,'A'), ('2','B'), (3,'C');
INSERT 0 3
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 27/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
28. Pl/Python
Escribimos el siguiente script:
CREATE FUNCTION py_data ( registro integer, valor char)
RETURNS integer
AS $$
import pg
dbPG= pg.connect(dbname='python0',user='dbadmin',passwd='dbadmin',host='localhost')
qry = "update datos set texto = '" + valor + "' where numero = " + str(registro)
resultado = dbPG.query(qry)
return 1
$$ LANGUAGE plpythonu;
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 28/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
29. Pl/Python
Lo subimos y los ejecutamos:
python0=# i /home/ernesto/plpython/ejemplo3.py
CREATE FUNCTION
python0=# select py_data(1,'BB');
py_data
1
python0=# select * from datos;
numero | texto
+
2 | B
3 | C
1 | BB
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 29/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957
30. Pl/Python
ESO ES TODO
GRACIAS
EQ Soft Consultoría y Soporte E.I.R.L. Pl/Python
Http://www.eqsoft.net 30/30
informes@eqsoft.net
Teléfonos: (51) 01–5645744 / 01-5645424 / 997244926 / 997003957