Cómo consultar la lista de datos en la base de datos MySQL desde Python y mostrarla en la página web
Utilizo la base de datos MYSQL operada por MySQLdb. Comencemos con un ejemplo simple:
importar MySQLdb
pruebe:
conn=MySQLdb.connect(host='localhost',user='root', passwd='root',db='test',port=3306)
cur=conn.cursor()
cur.execute('select * from user')< / p>
cur.close()
conn.close()
excepto MySQLdb.Error,e:
imprimir "Error de MySQL %d: %s" % (e.args[0], e.args[1])
Preste atención para modificar su base de datos, nombre de host, nombre de usuario y contraseña.
Demostremos brevemente ejemplos de inserción de datos, inserción de datos en lotes y actualización de datos:
importar MySQLdb
pruebe:
conn =MySQLdb.connect(host='localhost',user='root',passwd='root',port=3306)
cur=conn.cursor()
cur . ejecutar('crear base de datos si no existe python')
conn.select_db('python')
cur.execute('crear tabla test(id int,info varchar(20) )')
valor=[1,'hola']
cur.execute('insertar en valores de prueba(%s,%s)',valor) p >
values=[]
for i in range(20):
values.append((i,'hi rollen'+str(i))) p>
cur.executemany('insertar en valores de prueba(%s,%s)',valores)
cur.execute('actualizar conjunto de pruebas info="Estoy rodando" donde id = 3')
conn.commit()
cur.close()
conn.close()
excepto MySQLdb. ,e:
print "Error de MySQL %d: %s" % (e.args[0], e.args[1])
Tenga en cuenta que debe haber conexión .commit() se utiliza para confirmar la transacción; de lo contrario, los datos no se pueden insertar realmente.
Después de ejecutarlo, los resultados de mi base de datos MySQL ya no son como se muestran en la imagen.
importar MySQLdb
intenta:
conn=MySQLdb.connect(host='localhost',user='root',passwd='root',puerto =3306)
cur=conn.cursor()
conn.select_db('python')
count=cur.execute('select * de la prueba ')
imprimir 'hay %s registros de filas' % recuento
result=cur.fetchone()
imprimir resultado
imprimir 'ID: %s info %s' % resultado
resultados=cur.fetchmany(5)
para r en resultados:
imprimir r p>
imprimir '=='*10
cur.scroll(0,mode='absolute')
resultados=cur.fetchall()
para r en resultados:
imprimir r[1]
conn.commit()
cur.close()
conn.close()
excepto MySQLdb.Error,e:
imprimir "Error de MySQL %d: %s" % (e.args[0], e.args[1 ])
No publicaré los resultados porque son demasiado largos.
Después de realizar la consulta, los caracteres chinos se mostrarán correctamente, pero aparecerán confusos en la base de datos. Después de buscar en Internet, descubrí que se puede hacer con un atributo:
En código Python
conn = MySQLdb.Connect(host='localhost', user='root ', passwd ='root', db='python'), agregue un atributo:
Cambiar a:
conn = MySQLdb.Connect(host='localhost', usuario= 'root' , passwd='root', db='python',charset='utf8')
El juego de caracteres debe ser el mismo que la codificación de su base de datos. Si la base de datos es gb2312, escriba charset. ='gb2312'.
Las funciones más utilizadas se publican a continuación:
Luego, este objeto de conexión también proporciona soporte para operaciones de transacción, el método estándar
commit() enviar
p>rollback() rollback
El método utilizado por el cursor para ejecutar comandos:
callproc(self, procname, args): utilizado para ejecutar procedimientos almacenados y recibir Los parámetros son el nombre del procedimiento almacenado y la lista de parámetros, y el valor de retorno es el número de filas afectadas
ejecutar (self, query, args): ejecuta una única instrucción SQL y los parámetros recibidos son la instrucción SQL misma. y la lista de parámetros utilizada el valor de retorno es el número de filas afectadas
executemany(self, query, args): ejecuta una única instrucción SQL, pero ejecuta repetidamente los parámetros en la lista de parámetros y devuelve. el valor es el número de filas afectadas
nextset(self): pasar al siguiente conjunto de resultados
El método utilizado por el cursor para recibir el valor de retorno:
fetchall(self): recibe todas las filas de resultados devueltas.
fetchmany(self, size=None): recibe el tamaño y devuelve las filas de resultados. Si el valor de tamaño es mayor que el número de filas de resultados devueltas. Se devolverán los datos cursor.arraysize.
fetchone(self): devuelve una fila de resultados.
scroll(self, value, mode='relative'): mueve el puntero a un cierta fila. Si modo = 'relativo', significa comenzar desde la fila actual. Mover la barra de valores. Si modo = 'absoluto', significa mover la barra de valores desde la primera fila del conjunto de resultados.