Red de conocimiento informático - Conocimiento de la instalación - Cómo ejecutar Python con una base de datos localmente

Cómo ejecutar Python con una base de datos localmente

1. Instale mysql

Si es usuario de Windows, la instalación de mysql es muy sencilla. Simplemente descargue el archivo de instalación directamente y haga doble clic en el archivo de instalación para continuar paso a paso. paso.

La instalación en Linux puede ser más sencilla. Además de descargar el paquete de instalación para la instalación, habrá mysql en el almacén general de Linux. Solo necesitamos descargarlo e instalarlo con un comando:

Ubuntu\deepin

gt;gt;sudo?apt-get?install?mysql-server?

gt;gt;Sudo?apt-get?install?mysql - client

centOS/redhat

gt;gt;yum?install?mysql

Segundo, instale MySQL-python

Para habilitar python para operar mysql, necesita el controlador MySQL-python, que es un módulo esencial para que Python opere mysql.

Dirección de descarga: h

¿Descargar el archivo MySQL-python-1.2.5.zip y descomprimirlo directamente? Ingrese al directorio MySQL-python-1.2.5:

gt;gt;python?setup.py?install

Tres, prueba

La prueba es muy simple, verifique ¿Se puede importar el módulo MySQLdb normalmente?

fnngj@fnngj-H24X:~/pyse$ python

Python 2.7.4 (predeterminado, 26 de septiembre de 2013, 03:20:56)

[ GCC 4.7.3] en linux2

Escriba "ayuda", "copyright", "créditos" o "licencia" para obtener más información.

gt;gt;gt; import MySQLdb

¿No hay ningún mensaje de error que indique que no se puede encontrar el módulo MySQLdb, lo que indica que la instalación está bien? Antes de comenzar a usar Python para operar la base de datos, debemos revisar las operaciones básicas de mysql:

Cuatro, operaciones básicas de mysql de ?

$?mysql?-u?root?-p? (cuando hay una contraseña)

$?mysql?- u?root? (cuando no hay contraseña)

mysqlgt; mostrar bases de datos ?// Ver todas las bases de datos actuales

------------- -------------

| Base de datos |

------------------- -------

| esquema_información |

| csvt |

| csvt04 |

| /p>

| esquema_rendimiento |

| prueba |

--------------------

6 filas en conjunto (0,18 segundos)

mysqlgt; use test ? //Función y base de datos de prueba

Base de datos modificada

mysqlgt; tablas; //Ver las tablas en la base de datos de prueba

Conjunto vacío (0,00 segundos)

//Crear tabla de usuario con dos campos: nombre y contraseña

mysqlgt; CREATE ?TABLE ?user (nombre VARCHAR(20), contraseña VARCHAR(20)); ?Consulta OK, 0 filas afectadas (0,27 segundos)

//Inserte varios datos en el usuario table

mysqlgt; insertar en valores de usuario ('Tom', '1321'); Consulta correcta, 1 fila afectada (0,05 segundos)

mysqlgt; 'Alen', '7875'); Consulta correcta, 1 fila afectada (0,08 segundos)

mysqlgt; insertar en valores de usuario ('Jack', '7455'); sec)

//Ver datos de la tabla de usuario

mysqlgt; select * from user ------

| nombre

| contraseña |

------

| Tom 1321 |

| |

| Jack |

------ ----------

3 filas en conjunto (0,01 seg. )

//Eliminar datos con nombre igual a Jack

mysqlgt; eliminar del usuario donde nombre = 'Jack'; Consulta OK, 1 fila afectada (0,06 segundos)

//Modifique la contraseña con el nombre igual a Alen a 1111

mysqlgt; actualice la contraseña establecida por el usuario ='1111' donde nombre = 'Alen'; /p>

Filas coincidentes: 1?Cambiado: 1?Advertencias: 0

//Ver contenido de la tabla

mysqlgt; select * from user; -- - ---------

| nombre |

-------- ----------

| Tom |

|

3 filas en conjunto (0,00 segundos)

Cinco, ¿python? Conceptos básicos del funcionamiento de la base de datos mysql

#coding=utf-8import MySQLdb

conn= MySQLdb.connect(

host='localhost',

puerto = 3306,

usuario='root',

passwd= '123456',

db = 'test',

)

cur = conn.cursor()#Crear tabla de datos#cur. ejecutar("crear tabla estudiante(id int, nombre varchar(20), clase varchar(30), edad varchar(10))")#Insertar un dato #cur.execute("insertar en valores de estudiante('2' ,'Tom',' 3 año 2 clase','9')")#Modificar los datos de la condición de consulta#cur.execute("actualizar clase de conjunto de estudiantes='3 año 1 clase' donde nombre = 'Tom'" )#Eliminar los datos de la condición de consulta# cur.execute("eliminar del estudiante donde edad='9'")cur.close()

conn.commit()

conn.close()

gt;gt;gt;?conn?=?MySQLdb.connect(host='localhost', puerto?=?3306, usuario='root', p

asswd='123456', db?='test',)

El método Connect()? se utiliza para crear una conexión a la base de datos, en la que se pueden especificar parámetros: nombre de usuario, contraseña, host y otros. información.

Esto simplemente está conectado a la base de datos. Para operar la base de datos, necesita crear un cursor.

gt;gt;gt;?cur?=?conn.cursor()

Cree un cursor a través del método cursor() bajo la conexión de conexión de base de datos obtenida.

gt;gt;gt;?cur.execute("crear?table?student(id?int?, nombre?varchar(20), clase?varchar(30), edad?varchar(10) )")

Las sentencias SQL puras se pueden escribir mediante el método de ejecución () de la operación cur? Opere datos escribiendo declaraciones SQL en el método ejecutar ().

gt;gt;gt;cur.close()

cur.close()?Cerrar el cursor

gt;gt;gt;conn.commit ( )

El método conn.commit() envía una transacción y debe tener este método al insertar un dato en la base de datos; de lo contrario, los datos no se insertarán realmente.

gt;gt;gt;conn.close()

Conn.close() cierra la conexión a la base de datos

Seis, inserta datos

No es conveniente insertar datos escribiendo sentencias SQL puras en el método de ejecución() anterior. Tales como:

gt;gt;gt;cur.execute("insertar?en?estudiante?valores('2','Tom','3?año?2?clase','9' ) ")

Si quiero insertar nuevos datos, debo modificar el valor en esta declaración.

Podemos realizar las siguientes modificaciones:

#coding=utf-8import MySQLdb

conn= MySQLdb.connect(

host='localhost',

puerto=3306,

usuario='raíz',

passwd='123456',

db='prueba',

)

cur = conn.cursor()#Insertar un dato sqli="insertar en valores de estudiante(s, s, s, s)" cur.execute(sqli, (' 3', 'Huhu', '2 año 1 clase', '7'))

cur.close()

conn.commit()

conn.close ()

¿Qué sucede si desea insertar varios valores en la tabla de datos a la vez?

#coding=utf-8import MySQLdb

conn= MySQLdb.connect(

host='localhost',

puerto = 3306 ,

usuario='root',

passwd='123456',

db='test',

)

cur = conn.cursor()#Insertar varios registros a la vez sqli="insertar en valores de estudiante(s, s, s, s)" cur.executemany(sqli, [

( '3', 'Tom', '1 año 1 clase', '6'),

('3', 'Jack', '2 año 1 clase', '7'),

p>

('3', 'Yaheng', '2º año 2 clase', '7'),

])

cur.close()

conn.commit()

conn.close()

El método ejecutarmany() puede insertar múltiples valores a la vez y ejecutar los encabezados- arriba de la instrucción SQL, pero la lista de parámetros se ejecutará repetidamente, el valor de retorno es el número de filas afectadas.

Siete. Consulta de datos

Quizás hayas probado a usar Python

gt;gt;gt;cur.execute("select?*?from ?student" )

para consultar los datos en la tabla de datos, pero no imprimió los datos en la tabla, lo cual fue un poco decepcionante.

Veamos qué obtiene esta declaración

gt;gt;gt;aa=cur.execute("select?*?from?student")

gt ;gt;gt;print?aa

5

Lo que obtiene es cuántos datos hay en nuestra tabla.

Entonces, ¿cómo podemos obtener los datos de la tabla? Ingrese python?shell

gt;gt;gt; import MySQLdbgt;gt;gt; conn = MySQLdb.connect(host='localhost', puerto=3306, usuario='root', passwd='123456 ', db = 'prueba', )gt;gt;gt; cur = conn.cursor()gt;gt;gt; cur.execute("seleccionar * del estudiante")5L

gt;gt ;gt; cur.fetchone()

(1L, 'Alen', '1 año 2 clase', '6')gt;gt;gt; cur.fetchone()

(3L, 'Huhu', '2 año 1 clase', '7')gt;gt;gt; cur.fetchone()

(3L, 'Tom', '1 año 1 clase' , '6')

...gt;gt;gt;cur.scroll(0,'absolute')

El método fetchone() puede ayudarnos a obtener los datos en la tabla, pero los datos obtenidos son diferentes cada vez que se ejecuta cur.fetchone()? En otras palabras, no lo ejecuté una vez. El cursor se moverá desde el primer dato de la tabla a la posición del siguiente dato. así que lo ejecuté nuevamente. Lo que obtienes en ese momento es el segundo dato.

El método Scroll(0,'absolute') puede colocar el cursor en los primeros datos de la tabla.

Aún no obtenemos los resultados que queremos. ¿Cómo obtener varios datos en la tabla e imprimirlos?

#coding=utf-8import MySQLdb

conn= MySQLdb.connect(

host='localhost',

puerto = 3306 ,

usuario='root',

passwd='123456',

db='test',

)

cur = conn.cursor()#Obtener cuántos datos hay en la tabla aa=cur.execute("select * from Student")print aa#Imprimir cuántos datos hay en la tabla información de la tabla = cur.fetchmany(aa) para ii en información: imprimir ii

cur.close()

conn.commit()

conn.close ()

A través de la impresión anterior?aa?, sabemos que hay 5 datos en la tabla actual. El método fetchmany() puede obtener varios datos, pero es necesario especificar el número. de datos. ¡Se pueden imprimir varios datos a través de un bucle for! Los resultados de la ejecución son los siguientes:

5(1L, 'Alen', '1 año 2 clase', '6')

(3L, 'Huhu', '2 año 1 clase' , '7')

(3L, 'Tom', '1 año 1 clase', '6')

(3L, 'Jack', '2 año 1 clase', '7')

(3L, 'Yaheng', '2 año 2 clase', '7')

[Terminado en 0.1s]