Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Parámetros
1. Importar el conector
2. Conectarse a la base de datos (función connect del módulo
conector)
3. Abrir un Cursor (método cursor de la conexión)
4. Ejecutar una consulta (método execute del cursor)
5. Obtener los datos (método fetch o iterar sobre el cursor)
Página 2 de 7
6. Cerrar el cursor (método close del cursor)
>>> cursor.fetchone()
Página 3 de 7
(1L, 'Joe', 'Campbell', datetime.date(2006,
2, 10), 'N')
>>> cursor.fetchall()
((1L, 'Joe', 'Campbell', datetime.date(2006,
2, 10), 'N'),
(2L, 'Joe', 'Doe', datetime.date(2004, 2,
16), 'N'),
(3L, 'Rick', 'Hunter', datetime.date(2005, 3,
20), 'N'),
(4L, 'Laura', 'Ingalls', datetime.date(2001,
3, 15), 'Y'),
(5L, 'Virginia', 'Gonzalez',
datetime.date(2003, 4, 2), 'N'))
Cual metodo usar dependera de la cantidad de datos que
tengamos, la memoria disponible en la PC y sobre todo, de como
querramos hacerlo. Si estamos trabajando con datasets limitados,
no habra problema con el uso de fetchall(), pero si la base de datos
es lo suficientemente grande como para entrar en memoria, se
podria implementar una estrategia como la que se encuentra aca:
import MySQLdb
db = MySQLdb.connect(host="localhost",
user="root",passwd="secret", db="PythonU")
cursor = db.cursor()
recs=cursor.execute("SELECT * FROM Students")
for x in range(recs):
print cursor.fetchone()
O directamente:
import MySQLdb
Página 4 de 7
db = MySQLdb.connect(host="localhost",
user="root",passwd="secret", db="PythonU")
cursor = db.cursor()
cursor.execute("SELECT * FROM Students")
for row in cursor:
print row
(Sebastian Bassi)
>>> cur =
conn.cursor(cursor_factory=psycopg2.extras.Di
ctCursor)
>>> cur.execute("SELECT * FROM estudiante")
>>> for row in cur: # itero sober cada fila
>>> # row es un diccionario, con las
claves = nombres de campos
>>> print "Nombre y Apellido: %s, %s " %
(row['nombre'],row['apellido'])
Parámetros
Pregunta: Hola chicos. Estoy con un inconveniente que no puedo
solventar. Tengo una funcion de python que genera unos
querystrings para postgres.
cur = conn.cursor()
cur.execute("insert into personas (apellido)
values (%s)" , ["D'agostino"])
Página 7 de 7
Así, automáticamente postgres sabe, según el tipo de datos del
parámetro, en este caso un string = "D'agostino", como escapear y
formatear el sql para que no de error.