entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

¿Consulta a base de datos Mysql con Python?

Quiero obtener elementos de la base de datos mediante un select pero no se como se hace busquee en google pero no le entendi del todo Gracias de antemano

3 Respuestas

7votos

calambrenet Puntos280

Primero necesitas el módulo de python para acceder a Mysql 'mysql-python'. Si trabajas con fedora se instala así:

yum install MySQL-python.i686

O en Ubuntu:

apt-get install python-mysqldb

La usas en tu código:

import MySQLdb

Te conectas a la base de datos:

db = MySQLdb.connect("localhost","root","toor","mysql")

Una consula:

cursor = db.cursor()
cursor.execute("select User from user")

Mostrar los resultados:

cursor.fetchall()

Cerramos:

cursor.close()

3votos

Para trabajar con bases de datos en Python yo siempre utilicé un módulo llamado SQLObject que es un ORM para Python, la capa de abstracción para manejar los datos en tu aplicación.

Desde allí vas a poder administrar cualquier motor de base de datos utilizando este ORM, te dejo un par de enlaces para que veas:

http://sqlobject.org/
http://www.ibm.com/developerworks/library/os-pythonsqlo/

1voto

t00m Puntos160

Puedes usar Connector/Python.

Un ejemplo:

import mysql.connector
cnx = mysql.connector.connect(user='myuser', password='mypass', host='localhost', database='mydb')
cursor = cnx.cursor()
cursor.execute("SELECT * tabla WHERE...")
cursor.fetchall()

Este módulo es bastante potente. En el ejemplo anterior te devuelve una lista de valores. Pero si quisieras obtener un diccionario con el nombre de la columna y el valor puedes crearte tu propio cursor tal que:

class MySQLCursorDict(mysql.connector.cursor.MySQLCursor):
    """Fetching rows as dictionaries with MySQL Connector/Python

    http://geert.vanderkelen.org/connectorpython-custom-cursors/"""
    def _row_to_python(self, rowdata, desc=None):
        row = super(MySQLCursorDict, self)._row_to_python(rowdata, desc)
        if row:
            return dict(zip(self.column_names, row))
        return None

Y luego usarlo:

cursor = cnx.cursor(cursor_class=MySQLCursorDict)

Este módulo está disponible tanto para linux como para windows. Tiene abundante info.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta